1. Trang chủ
  2. » Luận Văn - Báo Cáo

Pascal 1 Mot so bai tap Pascal hay

47 28 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 47
Dung lượng 393,42 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

BiÓu thøc l«gÝc nãi chung rÊt phøc t¹p vµ nhiÒu khi tån t¹i c¸c biÕn kh«ng ®ãng vai trß t¸c ®éng lªn gi¸ trÞ cña biÓu thøc, tøc lµ gi¸ trÞ cña biÓu høc cã thÓ kh«ng phô thuéc vµo mét sè[r]

Trang 1

Câu lạc bộ tin học Chơng trình đặt tên là CLUB.PAS

“ Cánh cửa câu lạc bộ Tin học luôn luôn rộng mở, chỉ cần ban ham thích tinhọc và có một chút kiên nhẫn “ - Đó là thông báo của Hội đồng khoa học thành phốInformatics Nhiều bạn trẻ nô nức đến ghi tên sinh hoạt Nhng trớc cửa câu lạc bộ làmột cánh cửa với khoá số điện tử Khi bạn đến gần thì bộ cảm biến hồng ngoại sẽ tự

động nhận biết và kích hoạt Menu trợ giúp hớng dẫn mở cửa trên màn hình vi tính đặtsau ô kính, trên đó cho biết: mã vào cửa là một số có N chữ số, ( 1 Ê N Ê 10), mỗichữ số có thể nhận giá trị từ 0 đến M ( 1Ê M Ê 9) và sau đó là K gợi ý, mỗi gợi ý códạng: Code L, trong đó Code là số có N chữ số, mỗi số trong phạm vi từ 0 đến M;nếu bạn chọn mã Code này thì chỉ có L chữ số trong đó là trùng với mã mở cửa cả về

vị trí lấn giá trị Trên màn hình ghi rõ: K gợi ý này là vừa đủ để bạn tìm đợc mã vàocửa cho ngày hôm nay

Hãy lập trình giúp các bạn yêu thích tin học xác định khoá mở cửa câu lạc bộ

Dữ liệu: vào từ file văn bản CLUB.INP:

 Dòng đầu là 3 số nguyên N M K

Dòng thứ i trong K dòng tiếp theo ghi 2 giá trị Codei Li

Kết quả: đa ra file văn bản CLUB.OUT mã tìm đợc.

Trang 2

Trò chơi điện tử Chơng trình đặt tên là PITON.PAS

Hiếu - em của Trung, rất thích trò

chơi điện tử Con Trăn Nội dung của trò chơi

này là trên lới ô vuông kích thớc N*N ô có một

con trăn và M con thỏ, mỗi con ở một ô riêng

biệt Ban đầu trăn có độ dài 2 ô Bằng các phím

điều khiển Trái ( L), Phải (R), Lên (U), Xuống

(D) ngời ta di chuyển đầu trăn sang trái, phải,

lên trên hoặc xuống dới, mỗi lần bấm đầu trăn

chuyển một ô, đuôi trăn cũng sẽ chuyển một ô,

nơi có phần thân trăn trớc đuôi Trăn chỉ đợc

chuyển đông trong phạm vi lới đã cho và

không đợc tự cắt Nếu tự cắt - trò chơi sẽ kết

thúc.Nếu đầu trăn tới ô có thỏ, thì nó sẽ ăn con

thỏ đó Thỏ có thể to bé, béo gầy khác nhau.

Mỗi con thỏ có một lợng ca lo K riêng Sau khi

ăn thỏ có lợng ca lo K, thì trong K lần bấm

phím điều khiển tiếp theo đuôi trăn vẫn ở

nguyên chổ cũ, nh vậy trăn sẽ dài thêm K ô.

Nếu trong khi đang lớn dài ra, trăn ăn thêm thỏ

mới trăn sẽ tiếp tục dài ( nếu không bị kết

thúc) cho đến khi phần dài thêm bằng tổng

l-ợng ca lo thu đợc

Quá mệt mỏi vì bị em bất chơi đi chơi

lại nhiều lần để xem, Trung quyết định lập

ch-ơng trình minh hoạ tự động Để làm đợc việc

đó cần phải xây dựng kịch bản, tức là mô tả

trạng thái ban đầu của lới và trình tự bấm các

phím điều khiển Đángtiếc, trong lúc vội vàng,

một số kịch bản của Trung không thật hợp lý: trăn tự cắt làm trò chơi kết thúc giữa chừng Ngoài ra, trong kịch bản không có sai sót nào khác Hãy kiểm tra xem với kịch bản cho trớc trò chơi kết thúc sau lần bấm phím thứ mấy Nếu không mâu thuẫn thì trò chơi sẽ kết thúc sau lần bấm phím cuối cùng Để mô tả tạng thái của lới, các dòng và cột đơch đánh số từ 1 tới N từ trên xuống dới và từ trái qua phải.

Dữ liệu: vào từ file văn bản PITON.INP:

 Dòng đầu tiên là 2 số nguyên N M ( 2 Ê

l-Ê 10),

 Các dòng tiếp theo: mỗi dòng mô tả một phím bấm gồm 1 ký tự trong số các ký tự L,

R, U, D và số nguyên dơng xác định số lần bấm liên tiếp phím này.

Các dữ liệu trên một dòng cách nhau

ít nhất một dấu cách.

Kết quả: đa ra file văn bản PITON.OUT số

nguyên, xác định thời điểm trò chơi kết thúc

Trang 3

R R P PR

R RP P R

R PP R

R P .P PP R

PPP P R

P PPP

PP P PP

PP P XP

Trang 4

Hội nghị bàn tròn Chơng trình đặt tên là CONF.PAS

Tổng th ký Đại hội đồng Liên hợp quốc triệu tập một cuộc họp có N nhà ngoạigiao của N tổ chức tham gia Các đại diện ngoại giao đợc bố trí ngồi quanh một bàn tròn Giữa một số tổ chức có quan hệ căng thẳng, vì vậy không thể xếp họ ngồi cạnh

nhau đợc Thông tin về quan hệ giữa các tổ chức đợc cho dới dạng cặp số nguyên i j,

nếu giữa 2 tổ chức này có quan hệ căng thẳng

Hãy lập trình giúp Tổng th ký Liên hợp quốc bố trí chổ ngồi quanh bàn họp Các tổ chức đợc đánh số từ 1 tới N, 0 < N Ê 500)

Dữ liệu: vào từ file CONF.INP, dòng đầu tiên chứa số nguyên N, các dòng sau,

mỗi dòng một cặp số i j , cho biết các đại diện i và j không ngồi cạnh nhau đợc Kết thúc là một dòng chứa 2 số 0

Kết quả: đa ra file CONF.OUT: Nếu không có cách bố trí thoả mãn yêu cầu thì

đa ra thông báo KHONG CO, trong trờng hợp ngợc lại - đa ra dãy N số nguyên xác

Trang 5

Mã hoá kép Chơng trình đặt tên là

ENCRYPT.PAS

Để đảm bảo nội dung trao đổi qua E-mail tránh đợc các cặp mắt tò mò không cần thiết Alice thoả thuận với các bạn của mình về cách mã hoá nh sau:

 Xoá tất cả các dấu cách và các ký tự không phải là chữ cái, chuyển nội dung nhận

đợc sang chữ cái in hoa,

 Đẩy phải S vị trí: Thay mỗi chữ cái trong văn bản bằng chữ cái đứng sau nó S ( 1 Ê

S Ê 25) vị trí trong bản chữ cái tiếng Anh, việc xác định chữ cái thay thế đợc tiến hành vòng tròn, sau Z là A,

 Chia văn bản nhận đợc thành từng nhóm M ký tự ( 5 Ê M Ê 20) ( nhóm cuối cùng

có thể ít hơn M ), đảo ngợc trình tự viết các ký tự trong mỗi nhóm,

 Chia văn bản nhận đợc theo từng nhóm 5 ký tự viết cách nhau một dấu cách, mỗi dòng chứa 10 nhóm ( trừ dòng cuối cùng có thể ít hơn)

Để ngời nhận có thể giải mã, văn bản đã mã hoá đợc truyền đi kèm với một

đoạn nội dung trớc khi mã hoá (Khoá giải mã).

Ví dụ: Văn bản ban đầu là Meet me in St Louis, Louis và S = 2, M = 6, kết quả các

bớc mã hoá sẽ là: Meet me in St Louis, Louis.

GOVGG OQNVU PKWQN UKWUK

Văn bản đợc truyền đi với khoá là LOUIS

Hãy lập trình xác định các tham số S và M dùng để mã hoá Nếu văn bản không thể giải mã đợc ( do lỗi khi mã hoá hay từ khoá sai) thì đa ra thông báo NO

Dữ liệu: Vào từ file văn bản ENCRYPT.INP:

 Dòng đầu tiên là số nguyên N cho biết số nhóm trong văn bản đã mã hoá ( 4 Ê N

Ê 200),

 Các dòng tiếp theo: văn bản đã mã hoá,

 Dòng cuối cùng: Khoá giải mã

Kết quả: Đa ra file văn bản ENCRYPT.OUT một dòng chứa 2 số nguyên S và M, cách

nhau một dấu cách hoặc thông báo NO, nếu không thể giải mã đợc

Để tăng ngân sách qua việc thu thuế và đảm bảo dộ tin cậy cao trong việc xử lý tự

động các bản khai, chính phủ một quần đảo TháI Bình Dơng quyết định áp dụng biểu thuế mới nh sau: Nếu X là giá trị thuế mức cũ và Y là giá trị thuế mới, thì Y phảI thoả mãn các điều kiện sau:

 Y  X, Y - nguyên,

 Trong dạng biểu diễn hệ 10 của Y không có các chữ số d1, d2, , dn ( 1 Ê n Ê 9),

Trang 6

 Kh«ng tån t¹i sè nguyªn Z < Y vµ tho¶ m·n 2 ®iÒu kiÖn trªn.

H·y lËp tr×nh tÝnh gi¸ trÞ thuÕ míi theomøc thuÕ cò

D÷ liÖu: Vµo tõ file VAT.INP:

Trang 7

Đồng nghiệp

Để đánh giá hiệu quả của ứng dụng tin học vào đời sống, ngời ta tổ chức mộtcuộc hội thảo lớn qua mạng máy tính, trong đó mọi ngời đều tự do trao đổi ý kiến trựctiếp từng đôi một Có N ngời tham dự hội thảo (1 < N Ê 30 000), đánh số từ 1 đến N.Những ngời tham dự hội thảo đợc chia thành 2 lớp: Nhà Doanh nghiệp và Nhà Tinhọc Ban tổ chức ghi biên bản thống kê dới dạng dãy phân loại P1, P2, P3, , PM, trong

đó PK là cặp số i j, 0 Ê i Ê N, 1 Ê j Ê N, 1 Ê K Ê M Nếu i > 0, thì cặp i j nói lênrằng ngời i và ngời j không phải là đồng nghiệp ( tức là thuộc 2 lớp nghề khacs nhau).Nếu i = 0, thì có nghĩa là ý kiến ngời j có những điểm đáng lu ý và ngời ta cần biếtcho đến thời điểm này chắc chắn j có bao nhiêu ngời là đồng nghiệp và bao nhiêu ngời

là ở ngành khác

Có thể có một PL nào đó ghi thông tin mâu thuẫn với các PK trớc đó thì ngời ta

bỏ qua nó, coi nh PL không tồn tại

Yêu cầu lập trình xác định số lợng ngời đồng nghiệp và khác ngành cho câuhỏi 0 j trong biên bản

Dữ liệu: vào từ file NETCONF.INP:

 Dòng đầu là số nguyên N,

 Các dòng sau: mỗi dòng một cặp số i j, cách nhau ít nhất một dấu cách Số lợngcặp số không vợt quá 1 000 000

Kết quả: Đa ra file NETCONF.OUT: Mỗi dòng tơng ứng với một cặp số 0 j trong file

input, gồm 4 số nguyên L J Q1 Q2, trong đó L là thứ tự của cặp 0 j trong file input,Q1 - số đồng nghiệp xác định đợc, Q2 - số ngời khác ngành xác định đợc

Bài 1 Dãy số khác nhau.

Xét dãy 4 số nguyên không âm ( P 1 ,P 2 ,P 3 ,P 4 ) Nếu 4 số này không bằng nhau thì ngời ta có thể biến đổi để nhận đợc dãy 4 số mới (ẵP 1 -P 4 ẵ,ẵP 1 -P 2 ẵ,ẵP 2 -P 3 ẵ,ẵP 3 -P 4 ẵ).

Ví dụ: với dãy số ( 0, 1, 0, 2) ta có thể biến đổi nh sau:

(0,1,0,2)  ( 2, 1, 1, 2)  (0, 1, 0, 1)  (1, 1, 1, 1).

Nh vậy với 3 lần biến đổi dãy 4 số khác nhau ban đầu trở thành dãy các số giống nhau Với những dãy số khác nhau, số lần biến đổi có thể khác nhau.

Trang 8

Hãy lập trình nhập số N ( 0 < N Ê 10) hãy tìm dãy số không âm ( P 1 ,P 2 ,P 3 ,P 4 ) có P i lớn nhất là nhỏ nhất ( i = 1,2,3,4), chuỗi các biến đổi nêu trên có thể thực hiện đúng N lần.

Dữ liệu: vào từ file P4.INP, mỗi dòng một số nguyên N không âm không quá 10.

Kết quả : đa ra file P4.OUT, mỗi dòng gồm 5 số nguyên không âm N P1 P 2 P 3 P 4 ứng với từng dòng của file dữ liệu vào.

Tổng th ký Đại hội đồng Liên hợp quốc triệu tập một cuộc họp có N nhà ngoại giao của N

tổ chức tham gia Các đại diện ngoại giao đợc bố trí ngồi quanh một bàn tròn Giữa một số tổ chức

có quan hệ căng thẳng, vì vậy không thể xếp họ ngồi cạnh nhau đợc Thông tin về quan hệ giữa các

tổ chức đợc cho dới dạng cặp số nguyên i j, nếu giữa 2 tổ chức này có quan hệ căng thẳng.

Hãy lập trình giúp Tổng th ký Liên hợp quốc bố trí chổ ngồi quanh bàn họp Các tổ chức

đợc đánh số từ 1 tới N, 0 < N Ê 500).

Dữ liệu: vào từ file CONF.INP, dòng đầu tiên chứa số nguyên N, các dòng sau, mỗi dòng

một cặp số i j , cho biết các đại diện i và j không ngồi cạnh nhau đợc Kết thúc là một dòng chứa 2

số 0.

Kết quả: đa ra file CONF.OUT: Nếu không có cách bố trí thoả mãn yêu cầu thì đa ra

thông báo KHONG CO, trong trờng hợp ngợc lại - đa ra dãy N số nguyên xác định vị trí ai ngồi cạnh ai quanh bàn tròn.

có thể tạo ra dãy ma trận sắp xếp theo thứ tự tăng dần.

Hãy tìm phần tử cuối cùng ( A[M,N] ) của ma trận lớn nhất.

Dữ liệu: vào từ file MT.INP:

- Dòng đầu : M N,

- Các dòng sau: chứa các phần tử của A, sắp xếp theo dòng, các phần tử cách nhau một dấu cách hoặc nhóm dấu xuống dòng.

Các phần tử của A khác nhau từng đôi một, nguyên và thuộc phạm vi Longint.

Kết quả: đa ra file MT.OUT số nguyên A[M,N] tìm đợc.

4 3 5

Trang 9

2 8 1

Bài 2 Số nhị phân Fibonacci

Xét dãy số Fibonacci F 0 , F 1 , F 2 , F 3 , ,F n , với F 0 = F 1 = 1.

Một số nguyên dơng X có thể biểu diễn một cách đơn trị dới dạng:

X =  i F i , trong đó  i = (0, 1),  i * i+1 = 0.

Dãy ( 1 ,  2 , , n ) đợc gọi là dạng biểu diễn Nhị phân Fibonacci của số X.

Cho hai số nguyên X và Y dới dạng Nhị phân Fibonacci ( X Ê Y) Hãy tìm X*Y và X div Y dới dạng biểu diễn Nhị phân Fibonacci.

Dữ liệu: vào từ file FIB.INP, gồm 2 dòng, mỗi dòng một xây ký tự ( 0, 1), dòng đầu là X ở dạng biểu

diễn Nhị phân Fibonacci, dòng thứ 2 là Y ở dạng biểu diễn Nhị phân Fibonacci Độ dài xâu không quá 200.

Kết quả: đa ra file FIB.OUT:

- Dòng đầu: X*Y (dạng biểu diễn Nhị phân Fibonacci),

Dòng thứ 2: X div Y (dạng biểu diễn Nhị phân Fibonacci).

Ví dụ: FIB.INP FIB.OUT

- File WINDOWT.TXT chứa văn bản T

Kết quả: Đa ra file WINDOW.OUT số nguyên, xác định số lợng cửa sổ tìm

đ-ợc theo yêu cầu

Bài 2 Cửa sổ màn hình đồ hoạ

Một màn hình đồ hoạ có kích thớc 300*200, với điểm gốc toạ dộ (0,0) ở góctrên trái Hệ thống hoạt động trong chế độ đa nhiệm, hiện đang có N chơng trình hoạt

động, mỗi chơng trình có một cửa sổ riêng của mình Chơng trình thứ i có cửa sổ xác

định bởi nhóm 4 giá trị nguyên không âm ( X1i, Y1i, X2i, Y2i), trong đó ( X1i, Y1i) làtoạ độ trên trái và (X2i, Y2i) là toạ độ dới phải của cửa sổ ( 0 Ê X1i < X2i < 300, 0ÊY1i < Y2i < 200) Các cửa sổ này có thể rời nhau, phủ kín nhau hoặc giao nhau mộtphần Để kích hoạt một chơng trình mới, ngời ta cần khai báo một cửa sổ mới không

có điểm chung với các cửa sổ đang có Hãy xác định toạ độ các đỉnh trên trái và dớiphải của cửa sổ mới sao cho diện tích của cửa sổ này là lớn nhất

Dữ liệu: Vào từ file GW.INP:

Trang 10

- Dòng đầu chứa số nguyên N ( 0 < N Ê 100),

- N dòng sau: mỗi dòng chứa 4 số nguyên X1 Y1 X2 Y2, xác định mộtcửa sổ

Kết quả : đa ra file GW.OUT:

- Dòng đầu: số nguyên S, xác định diện tích cửa sổ tìm đợc S = 0, nếu khôngthể tìm đợc cửa sổ đáp ứng yêu cầu đề ra

- Trong trờng hợp S > 0, thì dòng thứ 2 chứa 4 số nguyên, xác định cửa sổ tìm

Xét trò chơi rải sỏi với 1 ngời chơi nh sau:

Cho cây T và một đống sỏi gồm K viên

Luật đi:

 ở mỗi bớc ngời ta lấy 1 viên sỏi từ đống sỏi cho trớc, đặt vào nút lá tuỳ chọn,

 Nếu nút P có r nút lá và tất cả các nút đó đều đã có sỏi thì ngời ta gom tất cả sỏi ở rnút lá đó lại, đặt một viên vào nút P, xoá tất cả các nút lá của nó và hoàn trả r-1viên sỏi còn lại vào đống ban đầu Nh vậy sau bớc này nút P trở thành nút lá

 Trò chơi kết thúc khi đặt đợc 1 viên sỏi vào nút gốc

Yêu cầu, dựa vào cấu trúc của cây T xác định số viên sỏi tối thiểu cần có ban đầu đểtrò chơi kết thúc đợc Cây có N nút ( 0 < N Ê 400), các nút đợc đánh số từ 1 tới N,nút gốc đợc đánh số là 1

Dữ liệu: vào từ file văn bản STONE.INP:

Các số trên 1 dòng cách nhau ít nhất 1 dấu cách

Kết quả: đa ra file STONE.OUT số lợng viên sỏi tối thiểu cần thiết.

Bài 1 Ngôn ngữ khởi tạo hằng

Xét ngôn ngữ tạo hằng nguyên Ngôn ngữ này chỉ bao gồm 4 chỉ thị:

- PLUS1 Khởi tạo hằng +1,

- MINUS1 Khởi tạo hằng -1,

Trang 11

- INC Tăng hằng nhận đợc lên 1.

- DUP Nhân đôi hằng nhận đợc.

Với hằng nguyên cho trớc (trong phạm vi Longint), hãy nêu chơng trình ít câu lệnh nhất tạo hằng đó

Dữ liệu: vào từ file CONS.INP, mỗi dòng một số nguyên cần tạo.

Kết quả: đa ra file CONS.OUT Mỗi số nguyên ứng với một chơng trình, Dòng đầu của mỗi chơng

trình là dấu # sau đó là dấu cách và hằng cần khởi tạo, các dòng tiếp theo là chơng trình, mỗi câu lệnh trên một dòng Các chơng trình cách nhau 1 dòng trống.

DUP INC

# -5 MINUS1 DUP DUP INC DUP INC

Bài 2 Số nhị phân Fibonacci

Xét dãy số Fibonacci F 0 , F 1 , F 2 , F 3 , ,F n , với F 0 = F 1 = 1.

Một số nguyên dơng X có thể biểu diễn một cách đơn trị dới dạng:

X =  i F i , trong đó  i = (0, 1),  i * i+1 = 0.

Dãy ( 1 ,  2 , , n ) đợc gọi là dạng biểu diễn Nhị phân Fibonacci của số X.

Cho hai số nguyên X và Y dới dạng Nhị phân Fibonacci ( X Ê Y) Hãy tìm X*Y và X div Y dới dạng biểu diễn Nhị phân Fibonacci.

Dữ liệu: vào từ file FIB.INP, gồm 2 dòng, mỗi dòng một xây ký tự ( 0, 1), dòng đầu là X ở dạng biểu

diễn Nhị phân Fibonacci, dòng thứ 2 là Y ở dạng biểu diễn Nhị phân Fibonacci Độ dài xâu không quá 200.

Kết quả: đa ra file FIB.OUT:

- Dòng đầu: X*Y (dạng biểu diễn Nhị phân Fibonacci),

Dòng thứ 2: X div Y (dạng biểu diễn Nhị phân Fibonacci).

Ví dụ: FIB.INP FIB.OUT

Bài 1 Cửa sổ văn bản

Xét văn bản T gồm N ký tự ( N Ê 1000000, N không cho trớc) và văn bản Pgồm M ký tự ( 0 < M Ê 100) Cửa sổ độ dài W là một đoạn văn bản gồm K ký tự liêntiếp của T ( M Ê K Ê 1000) Nói cửa sổ W chứa mẫu P, nếu tồn tại một cách xoá một

- File WINDOWT.TXT chứa văn bản T

Kết quả: Đa ra file WINDOW.OUT số nguyên, xác định số lợng cửa sổ tìm

đ-ợc theo yêu cầu

Ví dụ :

Trang 12

4 2

is

This is sample textfor the first task onthe contest

8

Vòng tròn con

Cho 2 dãy số nguyên a1, a2, a3, ,an và b1, b2, b3, bm ( 2 Ê n,m Ê 100) Các số này đợc xếp quanh 2 vòng tròn A và B: Các số ai - quanh vòng tròn A, các số bj

- quanh vòng tròn B, i = 1,2, , n; j = 1,2, , m Vòng tròn C với các số quanh nó

c1,c2, ,ck đợc gọi là vòng tròn con của A (hoặc của B), nếu tồn tại một cách xoá bớt các số của A ( hoặc của B) để nhận đợc C Hãy tìm vòng tròn C với k là lớn nhất

Dữ liệu : Vào từ file văn bản CIRCLE.INP:

+ dòng đầu chứa 2 số nguyên n, m, cách nhau ít nhất 1 dấu cách,

+ n dòng tiếp theo : chứa các số ai, mỗi số trên một dòng, i = 1,2, , n,

+ m dòng tiếp theo : chứa các số bj, mỗi số trên một dòng, j = 1,2, , m

Kết quả: Đa ra file văn bản CIRCLE.OUT:

+ Dòng đầu chứa số nguyên k,

+ k dòng sau: chứa các số ci, mỗi số trên một dòng, i = 1,2, , k

Dữ liệu: vào từ file BIT.INP, mỗi dòng một số nguyên K.

Kết quả: đa ra file BIT.OUT các bít tìm đợc, mỗi bít trên một dòng.

Ví dụ:

Trang 13

Bài 2 Rô bốt thám hiểm

Một trong số các dự án khả thi của thiên niên kỷ sau là khai thác các tài nguyên khoáng sản của các thiên thạch và tiểu hành tinh gần trái đất.Để thám hiểm, khảo sát các đối tợng này, ngời ta phải chế tạo các rô bốt đơn giản, hoạt động theo chơng trình cài sẵn hoặc phát đi từ trái đất Một cơ quan nghiên cứu đã chế tạorô bốt diều khiển bằng các lệnh: L - rẽ trái (tính theo hớng đang chuyển động), R - rẽ phải (tính theo h-ớng đang chuyển động), U - tiến thẳng, D - quay lui Với mỗi lệnh rô bốt di chuyển một đơn vị khoảng cách Vùng cần khảo sát đợc kẻ thành lới ô vuông, đợc nhúng vào

hệ toạ độ có các trục song song với cạnh của lới và các nút lới có toạ độ nguyên Ban

đầu rô bốt đợc đa tới điểm có toạ độ (X0,Y0) và hớng theo chiều song song với một trục toạ độ Nhiệm vụ là phải đa rô bốt rô bốt tới điểm có toạ độ (X1, Y1) bằng đúng K lệnh di chuyển (0 Ê ẵX0 - X1ẵ,ẵY0 - Y1ẵ Ê 16, 0< K Ê 16) Hãy xác định xem tồn tại bao nhiêu chơng trình khác nhau có thể cài đặt vào bộ nhớ của rô bốt

Dữ liệu: vào từ file văn bản ROBOT.INP gồm 5 số nguyên K X0 Y0 X1 Y1, các số

đều thuộc phạm vi Integer, cách nhau ít nhất 1 dấu cách

Kết quả: Đa ra file văn bản ROBOT.OUT một số nguyên xác định số lợng chơng trình

tìm đợc

Ví dụ:

Bài 3 Tráo bài.

Giả thiết có 2n lá bài, đánh số từ 1 đến 2n Ban đầu các lá bài đợc sắp theo thứ tự từ 1

đến 2n Quy tắc tráo bài là nh sau: sau một lần tráo bài từ trật tự ban đầu ta có trật tự các bài là n+1, 1, n+2, 2, ,2n, n Nh vậy, n lá bài đầu tiên sẽ nằm ở các vị trí 2, 4,

6, , 2n Các lá bài còn lại sẽ ở các vị trí lẽ: 1, 3, 5, , 2n-1 Với số nguyên n cho trớc, sau một số lần tráo, ta lại nhận đợc trình tự ban đầu của bộ bài Hãy lập trình xác

định số lần tráo để có lại trình tự ban đầu

Dữ liệu: vào từ file SHUFFLE.INP, mỗi dòng 1 số nguyên n ( n < 10000)

Kết quả: đa ra file SHUFFLE.OUT, mỗi dòng một số nguyên - kết quả ứng với dòng

t-ơng ứng của file dữ liệu vào

Ví dụ:

Trang 14

620

Bài 4 Luỹ thừa số học.

Luỹ thừa số học của số M theo chữ số N và ký hiệu là Ar(M,N) là số ít nhất các chữ số N cần thiết để xây dựng một biểu thức số học nguyên với các phép tính +, -, * , / và các dấu ngoặc tròn (, ) cho kết quả là M Ví dụ, Ar(17,3) = 5, vì 3*(3+3)-3/3

= 17, còn Ar(24,1) = 5, vì (11 + 1)*(1+1) = 24

Chú ý: các kết quả trung gian phải nguyên và không âm

Dữ liệu: vào từ file văn bản APOWER.INP, mỗi dòng 2 số nguyên M N (0 Ê M <

1000, 1 Ê N Ê 9)

Kết quả: đa ra file APOWER.OUT, mỗi dòng một số nguyên - kết quả ứng với dòng

t-ơng ứng của file dữ liệu vào

Trang 15

Yêu cầu: cho độ dài N của băng, ma trận kề và số nguyên M, hãy tính số lợng các băng khác nhau có thể có và xác định băng màu thứ M ( các băng đợc đánh soó từ 1 trở đi).

Dữ liệu: vào từ file văn bản ABC.INP, dòng đầu chứa 2 số nguyên N M ( 1Ê N Ê

30)

Ba dòng tiếp theo , mỗi dòng chứa 3 số nguyên 0 hoặc xác định ma trận kề theo trình

tự lần lợt là W B R Các số trên một dòng cách nhau 1 dâíu cách

Kết quả: đa ra file ABC.OUT:

 Dòng đầu tiên là tổng số các băng màu có thể có,

1427

Trang 16

Bảng đèn

Cho bảng hình vuông, trên đó gắn N*N đèn tạo thành lới ô vuông Các hàng và cột

đ-ợc đánh số từ 1 đến N từ trên xuốn dới và từ tráI qua phải Mỗi hàng và mỗi cột có một công tắc bấm Ký hiệu Ri là công tắc bấm của hàng i và Cj - công tắc bấm của cột

j Khi bấm vào một công tắc của một hàng ( cột) nào đó thì tất cả các đèn của hàng (cột ) ấy đổi trạng tháI: từ sáng thành tắt hoặc ngợc lại

Cho trớc hai trạng thái đầu và cuối của bảng, hãy chỉ cách bấm ít nhất có thể đợc các nút để chuyển trạng thái của bảng từ trạng thái đầu sang trạng thái cuối hoặc cho biết không tồn tại cách chuyển

Dữ liệu: vào từ file văn bản LAMP.INP, dòng đầu là số nguyên N ( 1 < N Ê 50), N

dòng sau mô tả trạng thái đầu của bảng, mỗi dòng N số 0 hoặc 1, 0 ứng với trạng thái tắt, 1 ứng với trạng thái bật, các số trên một dòng cách nhau ít nhất 1 dấu cách N dòng tiếp theo mô tả trạng thái cuối của bảng (theo quy cách nh trên)

Kết quả: đa ra file LAMP.OUT Dòng đầu tiên là số nguyên xác định số lần bấm nút

Nếu không có cách bấm thì dòng này chứa số -1 Các dòng tiếp theo: mỗi dòng ghi

một nút cần bấm, dới dạng R i hoặc C j.

Khôi phục ngoặc

Cho một biểu thức toán học có nhiều ngoặc tròn lồng nhau Biểu thức ban đầu đợc viết

đúng Ai đó tinh nghịch xoá hết các toán hạng và phép tính, chỉ để lại ngoặc Một ngờikhác viết dới mỗi ngoặc mở một số nguyên cho biết có bao nhiêu ngoặc ( cả đóng lẫn

mở ) nằm giữ ngoặc mở này và ngoặc đóng tơng ứng của nó Ví dụ, từ một biểu thức

ta có:

( ( ) ( ( ) ( ) ) ( ( ) ) ( ) )

14 0 4 0 0 2 0 0

Hãy khôi phục lại dãy các ngoặc dựa vào dãy các số nguyên cho trớc

Dữ liệu: vào từ file văn bản BALANC.INP:

Trang 17

 Dòng đầu số nguyên N - số lợng các số trong dãy, ( 0 < N Ê 1000),

 Các dòng sau: Các số nguyên không âm của dãy

Kết quả: đa ra file BALANC.OUT chuỗi các ngoặc tìm đợc dới dạng xâu văn bản

Kết quả nghiên cứu của một công trình khoa học đã cho phép xác định đợc các

hệ số ai của đa thức bậc n: P(x) = a1xn + a2xn-1 + + a1x + an+1 và nghiệm x0 của

ph-ơng trình P(x) = 0 ( 1 Ê n Ê 5, ẵaiẵÊ 1000, ẵx0ẵÊ 10 )

Điều đáng tiếc là khi lập trình ngời ta quên đa ra các dấu cách giữa các giá trị

ai và xo, vì vậy chỉ nhận đợc một xâu gồm các ký tự

Hãy tìm cách khôi phục lại kết quả dựa vào n và xâu ký tự nhận đợc

Dữ liệu: vào từ file văn bản EQUATION.INP:

 Dòng đầu chứa số nguyên n,

 Dòng thứ 2: chứa xâu các ký tự số và có thể có ký tự dấu + hoặc -

Kết quả: đa ra file EQUATION.OUT các giá trị a1, a2, , an+1, x0 , mỗi số trên 1 dòng

Khung nhựa

Xét 2 khung nhựa dẻo đợc cố định trong không gian Mỗi khung đợc tạo thành

từ những đoạn thẳng, gắn với nhau thành một khung khép kín Các đoạn thẳng của một khung không cắt nhau và 2 khung không có điểm chung

Trang 18

Khung thứ nhất đợc tạo thành từ n đoạn và các điểm nối của nó có toạ độ:

(x1,y1,z1), (x2,y2,z2), , (xn,yn,zn)

Khung thứ hai đợc tạo thành từ m đoạn và các điểm nối của nó có toạ độ:

(u1,v1,w1), (u2,v2,w2), , (um,vm,wm)(3Ê n,m Ê 50, các toạ độ là nguyên và nằm trong phạm vi từ -100 đến 100)

Hãy xác định xem có thể tách rời để lấy riêng từngkhung ra mà không cần phải ca cạnh của một khung nào đó hay không

Dữ liệu: vào từ file văn bản FRAME.INP:

 Dòng đầu chứa số nguyên n,

 n dòng tiếp theo, mỗi dòng chứa 3 số nguyên xi, yi, zi,

 Dòng thứ n+2 chứa số nguyên m,

 m dòng tiếp theo, mỗi dòng chứa 3 số nguyên uj, vj, wj

 Dòng thứ 2: chứa xâu các ký tự số và có thể có ký tự dấu + hoặc -

Kết quả: đa ra file FRAME.OUT thông báo YES nếu tách đợc và NO trong

Nh vậy, với 3 đối tợng ( a, b, c) có thể tồn tại 13 quan hệ phân loại:

a = b = c a = b < c c < a = b a < b = c

b = c < a a = c < b b < a = c a < b < c

a < c < b b < a < c b < c < a c < a < b

Trang 19

c < b < aCho số n, hãy xác định số lợng quan hệ phân loại khác nhau.

Dữ liệu: vào từ file văn bản COND.INP, gồm nhiều số nguyên n ( trong phạm

đánh số từ 1 đến 15, từ trái sang phải

Luật chơi là nh sau: ngời chơi chọn một miền đồng màu có số ô lớn hơn 1, lấy tất cả các quân trong miền ra khỏi bảng và dồn các quân còn lại theo 2 bớc:

a) Đẩy các quân dọc theo cột xuống ô trống phía dới cho đến khi chạm biên hoặckhông còn ô trống;

b) Nếu có cột trống thì tịnh tiến tất cả các cột bên phải sang trái ( giữ nguyên hàng),lấp vào cột trống

Trò chơi kết thúc khi mọi quân đợc lấy ra khỏi bàn cờ hoặc không tồn tại miền đồng màu diện tích lớn hơn 1 ô

Điểm số ban đầu là 0 Mỗi lần ngời chơi chọn miền đồng màu và lấy ra đợc m quân thì điểm số đợc cộng thêm (m-2)2

Hãy lập trình chỉ ra cách đi để nhận đợc nhiều điểm nhất từ bảng cho trớc

Dữ liệu: vào từ file RBWGAME.INP gồm 10 dòng, mỗi dòng chứa 1 xâu 15 ký tự R,

B, W tơng ứng với các dòng của bảmg tính từ trên xuống dới

Trang 20

Kết quả: đa ra file RBWGAME.OUT, mỗi dòng ứng với 1 nớc đi ( lần chọn vùng)

Dòng thông tin về nớc đi có dạng:

X i j m d,trong đó: - X - màu của miền,

i, j - toạ độ một ô của vùng đợc chọn,

m - số lợng quân lấy đợc ra khỏi bảng,

d - số điểm nhận đợc ở bớc này

Dòng cuối cùng của file kết quả chứa 2 số nguyên cho biết tổng số điểm nhận đợc và

số quân còn lại trong bảng

Trang 21

Xét file văn bản VB.INP, mỗi dòng của file chứa một từ không quá 75 ký tự chữ cái thờng trong bảng chữ cái tiếng Anh Các từ trong file đợc sắp xếp theo thứ tự

từ điển Dãy các từ đợc gọi là một chuỗi, nếu từ sau hoặc giống từ trớc hoặc có thể nhận đợc bằng cách bổ sung các ký tự vào cuối từ trớc Số lợng các từ trong chuỗi đ-

ợc gọi là độ dài của chuỗi

Ví dụ : Chuỗi từ có độ dài 6

Yêu cầu: lập trình nhập từ file VB.INP với số lợng từ có thể tớivài trăm nghìn, tìm

chuỗi từ dài nhất trong file

Kết quả: Đa ra file văn bản VB.OUT:

 Dòng đầu chứa độ dài của chuỗi,

 Các dòng sau: mỗi dòng chứa 1 từ của chuỗi Các từ đa ra theo thứ tự tăng dần của

Trang 22

Để kiểm tra khả năng của chơng trình dịch ngời ta quyết định viết những câu lệnh phức tạpvà dựa vào thời gian dịch, thời gian thực hiện chơng trình kết quả có thể đánh giá chất lợng chơng trình dịch.

Gọi các điều kiện là C1, C2, , CN Với N = 2, có thể viết đợc 2 câu lệnh khác nhau:

if C1 then if C2 then A1 else A2 else if C2 then A3 else A4;

if C2 then if C1 then A1 else A3 els if C1 then A2 else A4;

Với N cho trớc, hãy xác định xem có thể có bao nhiêu câu lệnh rẽ nhánh khác nhau

Dữ liệu: vào từ file văn bản COND.INP, gồm nhiều số nguyên N1, N2, Nk, mỗi số

12

bảng quảng cáo điện tử

Có N ( 1 < N Ê 100) bảng quảng cáo, mỗi bảng có dạng hình chữ nhật Bảng thứ i đợc xác định toạ độ trên trái ( Xi, Yi) và dới phải (Ui, Vi), các toạ độ đều nguyên, không âm và không vợt quá 32767 Các bảng quảng cáo đợc hiển thị trên một bảng thông tin điện tử, lần lợt từ 1 tới N theo chế độ các cửa sổ đè lên nhau, bảng 1 nằm d-

ới, và bảng N nằm trên cùng Để điều khiển bảng quảng cáo, ngời ta có các lệnh sau:

 C i - tính diện tích phần thấy đợc của bảng i

Sau mỗi câu lệnh (trừ lệnh C ), dãy các bảng đợc đánh số lại từ dới lên trên từ

1 tới N

Hãy lập trình nhập N, toạ độ các bảng, các lệnh điều khiển, đa ra kết quả thực hiện các lệnh C, với mỗi lệnh C cần đa ra diện tích phần nhìn thấy đợc và tỷ lệ phần trăm phần nhìn thấy so với toàn bảng

Dữ liệu: Vào từ file văn bản RECLAM.INP:

 Dòng đầu : số nguyên N,

 N dòng tiếp theo mỗi dòng 4 số nguyên X Y U V,

 Các dòng tiếp theo: mỗi dòng chứa một lệnh điều khiển

Kết quả: Đa ra file RECLAM.OUT, mỗi dòng ứng với 1 dòng câu lệnh C của file dữ

liệu vào, gồm 1 số nguyên và một số thực với 2 chữ số lẻ ( Diện tích và tỷ lệ %)

Trang 23

Để liên lạc với tàu thăm dò tự động ngời ta chuẩn bị danh sách các thông báo, đánh số

từ 1 trở đi và cài vào trong bộ nhớ của máy tính trên trạm thăm dò Số lợng thông báo

là 1 000 000 Trạm điều khiển mặt đất hoặc tàu thăm dò chỉ cần phát đi số thứ tự thay vì cho chuyển toàn bộ nội dung thông báo Thông tin liên lạc đợc chuyển bằng hệ

thống phát sung Laser định hớng Nhng việc phát xung (tức

là các tín hiệu 1 ) Vì vậy các nhà khoa học quyết định phát mỗi số ứng với một dãy bít có không quá 3 số 1 Các dãy bít

có cùng độ dài là 200, đợc sắp xếp lại theo thứ tự tăng dần của giá trị nhị phân tơng ứng Số thứ tự của dãy bít trong danh sách sẽ chính là số nguyên cần gửi

Hãy lập trình cài vào máy phát chuyển đổi từ giá trị số sang xâu bít cần phát

Dữ liệu: vào từ file IMPULSE.INP:

 Dòng đầu là số lợng thông báo cần phát R ( R Ê 10000),

 Các dòng sau chứa các số nguyên dơng ( số thứ tự thôngbáo), các số nếu ở trên 1 dòng - cách nhau ít nhất 1 dấucách

Kết quả: Đa rs file IMPULSE.OUT R dòng, mỗi dòng chứa một xâu bít ứng với số cần phát Bỏ qua các số 0 trớc số 1 đầu tiên trong xâu, trừ trờnghợp số cần phát là 1 thì kết quả ra dợc ghi là 0

Ngày đăng: 13/04/2021, 23:03

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w