SlideShare a Scribd company logo
001 Đ t quân h uặ ậ
Cho bàn cờ vua kích thước NxN. Yêu cầu liệt kê tất cả các cách đặt N quân hậu lên bàn cờ vua
sao cho chúng không thể ăn nhau.
Dữ liệu vào: Trong file HAU.INP là một số nguyên dương N duy nhất N≤16
Dữ liệu ra: ghi vào file HAU.OUT gồm nhiều dòng, mỗi dòng là một cách đặt N quân hậu lên
bàn cờ vua
002 Đ ng đi ng n nh tườ ắ ấ
Trong vấn đề tranh chấp biển Đông, Việt Nam kiện TQ lên toàn án Quốc tế vì TQ đã vi phạm
chủ quyền Việt Nam. Để tìm bằng chứng quần đảo Hoàng Sa là của Việt Nam, toàn án quốc tế đã
cử người sang nước ta. Trước khi đến Hoàng Sa, người ta đã lập ra một bản đồ hình chữ nhật kích
thước MxN, trong đó, mỗi ô của bản đồ là một đảo và giá trị trong mỗi ô là số lượng bằng chứng có
được trên đảo. Tòa án quốc tế đã chuẩn bị trước lịch trình để thu thập chứng cứ trên tất cả các đảo,
tuy nhiên TQ đã biết được điều này nên trên một số hòn đảo bằng chứng có lợi cho nước ta đã bị
đánh tráo thành bằng chứng có lợi cho TQ. Khi người của toà án quốc tế bắt đầu xuất phát trên hòn
đảo có tọa độ (1,1) thì tình báo Việt Nam phát hiện nhiều hòn đảo đã bị đánh tráo bằng chứng đồng
thời tàu chiến TQ đang đuổi theo từ phía sau và bên trái do vậy kế hoạch đường đi của toàn án phải
thay đổi: Tàu của toàn án chỉ được đi thẳng hoặc rẽ phải và chỉ ghé thăm những hòn đảo nào có
chứng cứ có lợi cho Việt Nam
Yêu cầu: hãy viết chương trình lập đường đi cho tàu của tòa án đi qua các đảo để số lượng bằng
chứng thu được cho Việt Nam là lớn nhất khi tàu đi đến hòn đảo có tọa độ MxN.
Dữ liệu vào: Từ file BC.INP
+ Dòng đầu tiên ghi hai số nguyên dương M và N
+ M dòng tiếp theo, mỗi dòng ghi N số nguyên. Số nguyên ở dòng i cột j cho biết số lượng bằng
chứng có lợi có thể thu được từ hòn đảo này, nếu băng 0 có nghĩa là bằng chứng đã bị TQ đánh
tráo.
+ Ô (1,1) và ô (M,N) có giá trị dương
Dữ liệu ra: ghi vào file BC.OUT là một số nguyên duy nhất cho biết số lượng bằng chứng
nhiều nhất thu được
Ví dụ:
BC.INP BC.OUT
4 5
1 2 3 0 5
1 0 2 2 5
3 2 7 0 3
2 2 1 1 6
24
003 Lâu Đài
Splendid, vua xứ Byteotia muốn cho cô con gái xinh đẹp của mình – công chúa Ada xuất giá.
Ông hỏi con gái muốn người chồng của mình phải thế nào. Công chúa trả lời là chồng tương lai
phải là một người thông minh, đồng thời không hoang phí cũng như không keo kiệt bủn xỉn. Nhà
vua suy nghĩ khá lâu về cách kiểm tra để chọn cho công chúa người tốt nhất. Cuối cùng ông thấy
hay nhất là sử dụng lâu đài của mình để tổ chức tiếp đãi mọi cư dân của Byteotia. Lâu đài có rất
nhiều phòng, trong đó trưng bày các báu vật quốc gia. Theo các hành lang trong lâu đài, người ta có
thể ghé vào phòng này hay phòng khác, ngắm nhìn các hiện vật độc đáo trưng bày,mang lại những
kinh ngạc thích thú cho người xem. Để ghé vào mỗi phòng, người tham quan phải trả một số
Bytealer (đơn vị tiền tệ của Byteotia). Cuộc tham quan bắt đầu từ phòng có cửa vào lâu đài.
Nhà vua trao cho mỗi người trong diện có thể chọn làm phò mã một túi tiền, với một số lượng
Bytealer như nhau. Nhà vua yêu cầu mỗi người tự chọn đường đi tham quan, bắt đầu từ phòng vào
lâu đài và kết thúc ở phòng công chúa ngồi. Mỗi người được yêu cầu chi hết đúng số tiền trong túi
được trao. Những người hoang phí chi quá nhiều cho việc ghé xem các phòng trưng bày và hết tiền
trước khi đến được phòng công chúa. Ngược lại, những người keo kiệt tới phòng công chúa với túi
vẫn còn tiền, kết quả là bị công chúa đuổi ra ngoài sau khi thu hết số tiền dư trong túi.
Yêu cầu: Chỉ ra dãy phòng cần ghé xem trên đường đi tới phòng công chúa và tiêu hết đúng số
tiền trong túi được trao. Dữ liệu vào đảm bảo có lời giải. Nếu có nhiều lời giải thì chỉ cần nêu một
trong số đó.
Dữ liệu: Vào từ file văn bản CASTLE.INP:
• Dòng đầu tiên có 5 số nguyên n, m, e, p, b, 1<=n<=100, 1<=m<=4950, 1<=e,p<=n,
1<=b<=1000, trong đó n - số phòng, m - số hành lang, các phòng được đánh số từ 1 đến n, e –
phòng vào lâu đài, p- phòng có công chúa, b - số Bytealer trong túi;
• Dòng thứ 2 chứa n số nguyên dương c1, c2,..., cn, 1<=ci<=1000, ci - tiền cần trả để vào xem
phòng i;
• m dòng tiếp theo: mỗi dòng chứa một cặp số nguyên dương x, y, (x<>y, 1<=x,y<=n),cho biết
có hành lang nối 2 phòng x và y.
Các số trên một dòng các nhau ít nhất một dấu cách.
Kết quả: Đưa ra file văn bản CASTLE.OUT dãy số nguyên xác định các phòng cần ghé từ, đi
từ e đến p.
Ví dụ:
CASTLE.INP CASTLE.OUT
5 6 3 4 9 3 2 4
1 2 3 4 5
2 4
5 4
1 5
1 2
2 3
3 1
004 Tìm bi u th cể ứ
Cho xâu số N= ‘123456789’ và số nguyên M
Yêu cầu: Hãy tìm cách chèn vào N các dấu cộng hoặc trừ để thu được biểu thức có giá trị bằng
M (nếu có thể)
Dữ liệu vào: Đọc từ file văn bản BTHUC.INP có nội dung duy nhất là số nguyên M
Dữ liệu ra: Ghi vào file văn bản BTHUC.OUT. Ghi tất cả các biểu thức thu được nếu có, nếu
không thu được biểu thức nào có giá trị bằng M thì ghi là “KHONG CO”
Ví dụ:
BTHUC.INP BTHUC.OUT
500 1-234-56+789
1-2+345+67+89
-12+34+567-89
1000 KHONG CO
005 Quân mã
Trên bàn cờ kích thước NxN (1≤N≤200). Trên bàn cờ có M quân hậu (0≤M≤N), mỗi quân hậu
có thể kiểm soát các ô trên cùng hàng, cùng cột và cùng đường chéo với nó. Không có hai quân hậu
nằm cùng một ô. Trên các ô còn lại của bàn cờ, tại ô (x,y) có một quân mã có mức năng lượng bằng
0, nó có thể nhảy đến 1 trong 8 ô xung quanh nó theo luật cờ vua. Nếu nó nhảy đến 1 ô có quân hậu
kiểm soát thì mức năng lượng của nó tăng lên một đơn vị.
Yêu cầu: Tìm đường đi của quân mã từ ô (x,y) đến ô (p,q) sao cho số bước di chuyển là ít nhất.
Nếu có nhiều đường có cùng số bước di chuyển thì chọn đường đi sao cho sau khi đến ô (p,q) quân
mã có mức năng lượng cao nhất.
Dữ liệu vào: Tệp văn bản KNIGHT.INP
+ Dòng đầu chứa 6 số nguyên N, M, X, Y, P, Q
+ M dòng tiếp theo mỗi dòng chứa hai số nguyên lần lượt là tọa độ hàng và cột của các quân
hậu
+ Các số trên một dòng cách nhau ít nhất 1 khoảng trắng
Dữ liệu ra: Tệp văn bản KNIGHT.OUT
+ Một số dòng đầu là các bước đi của quân mã
+ Dòng tiếp theo là số bước di chuyển của quân mã
+ Dòng cuối cùng chứa một số nguyên là mức năng lượng của quân mã khi đến ô (p,q)
+ Nếu không có đường đi thì ghi -1
Ví dụ:
KNIGHT.INP KNIGHT.OUT
5 2 3 3 4 4
2 2
1 5
3 3
5 2
4 4
2
2
006 xâu văn b nả
Viết chương trình ghi vào file văn bản tất cả các dãy số sắp xếp theo thứ tự từ điển được tạo
thành từ các số 1, 2, 3. Các dãy số cũng được sắp xếp theo thứ tự từ điện và không có 2 số liên tiếp
nào giống nhau.
Dữ liệu vào: Từ file văn bản XVB.INP chỉ chứa 1 số nguyên dương n duy nhất (n>0)
Dữ liệu ra: Được ghi vào file văn bản XVB.OUT mỗi dãy được ghi trên một dòng, dòng cuối
cùng ghi 1 số nguyên cho biết có bao nhiêu dãy số
Ví dụ: với n=2 , nội dung của file XVB.OUT như sau:
XVB.INT XVB.OUT
2 1
12
13
2
21
23
3
31
32
007 Cung đi n (Olympic 2011)ệ
Ở một vương quốc nọ có 1 vị vua và ông có N quý phi. Trên miếng đất hình vuông có kích
thước NxN, nhà vua muốn xây dựng cho mỗi quý phi, mỗi người một cung điện (giả sử mỗi cung
điện đều nằm trên một mảnh đất kích thước 1x1). Vấn đề là các quý phi này có tính ghen ghét nhau
nên nhà vua không muốn các cung điện nhìn thấy nhau từ các hướng (ngang, dọc, chéo). Chi phí
xây dựng các cung điện trên mỗi ô đất có thể có giá thành khác nhau. Nhà vua muốn xây dựng N
cung điện với tổng chi phí thấp nhất.
Yêu vầu: Bạn hãy giúp nhà vua thực hiện công việc đó
Dữ liệu vào: Từ file văn bản CUNGDIEN.INP gồm N+1 dòng
- Dòng đầu chứa số N (1≤N≤16)
- N dòng sau, mỗi dòng chứa N số là chi phí xây dựng tại ô đất tương ứng (Chi phí xây dựng
cung điện trong một ô có giá trị nguyên từ 1 đến 100). Mỗi số cách nhau ít nhất một khoảng trắng
Dữ liệu ra: Ghi ra file văn bản CUNGDIEN.OUT gồm một số duy nhất cho biết tổng chỉ phí
thấp nhất cho việc xây dựng. Giả sử dữ liệu luôn có lời giải
Ví dụ:
CUNGDIEN.INP CUNGDIEN.OUT
4
3 4 12 3
6 1 7 1
2 4 1 5
12 3 8 7
15
*Giải thích: Các ô được chọn là (1,2), (2,4), (3,1), (4,3)
008 X s đi n toánổ ố ệ
Có N người (đánh số từ 1 đến N) tham gia một đợt xổ số điện toán. Mỗi người nhận được một
thẻ gồm M ô (đánh số từ 1 đếnM). Người chơi được chọn K ô trong số các ô đã cho bằng cách đánh
dấu các ô được chọn. Sau đó các thẻ này được đưa vào máy tính để xử lý.
Máy tính chọn ra K ô ngẫu nhiên (gọi là các ô kết quả) và chấm điểm từng thẻ dựa vào kết quả
đã sinh. Cứ mỗi ô chọn đúng với ô kết quả thì thẻ chơi được tính 1 điểm. Giả thiết biết các ô chọn
cũng như các điểm tương ứng của từng thẻ chơi, hãy xác định tất cả các kết quả có thể có mà máy
sinh ra.
Dữ liệu vào đọc từ file vănbản XOSO.INP gồm:
- Dòng đầu ghi cácsố N, M, K
- Dòng thứ i trongN dòng tiếp ghi thẻ chơi của người i gồm K+1 số: K số đầu là các số hiệu của
các ô chọn, cuối cùng là điểm tương ứng.
Ghi kết quả ra file văn bản XOSO.OUT, mỗi dòng là một kết quả gồm K số ghi số hiệu các ô
mà máy đã sinh.
Ghi chú:
- Các số trên cùng mộtdòng trong các file vào/ ra, được ghi cách nhau ít nhất một dấu trắng.
- Giới hạn kích thước:N ≤ 100, M ≤50, K ≤10.
- Dữ liệu vào trong các test là hợp lệ và đảm bảo có ít nhất một đáp án.
Ví dụ:
009 Vòng tròn s nguyên tố ố
Một vòng tròn chứa n vòng tròn nhỏ (n chẵn). Các vòng tròn nhỏ được đánh số từ 1 đến n theo
chiều kim đồng hồ. Cần điền các số tự nhiên từ 1 đến n vào các vòng tròn nhỏ sao cho tổng của 2 số
trên 2 vòng tròn nhỏ liên tiếp là số nguyên tố. Vòng tròn 1 luôn được ghi số 1.
Ví dụ với N=6 ta có 1 cách điền như hình vẽ sau:
Dữ liệu: Vào từ tập tin RING.INP chứa số nguyên dương chẵn n (2 < n < 20).
Kết quả: Ghi vào tập tin văn bản RING.OUT, gồm nhiều dòng, mỗi dòng là một cách điền, các số
trên một dòng cách nhau bằng 1 ký tự trắng
Ví dụ:
RING.INP RING.OUT RING.INP RING.OUT
6 1 4 3 2 5 6
1 6 5 2 3 4
8 1 2 3 8 5 6 7 4
1 2 5 8 3 4 7 6
1 4 7 6 5 8 3 2
1 6 7 4 3 8 5 2
010: Các ký tự
Tên chương trình: LETTERS.PAS
1
4
3
2
5
6
Trò chơi được mô tả như sau: trên một bảng hình chữ nhật chia R hàng và C cột có các ký tự chữ
hoa (A-Z) được viết trên mỗi ô của bảng. Trước khi bắt đầu trò chơi có một hình ở góc trên bên trái
của bảng(hàng 1, cột 1). Trong mỗi bước di chuyển, một người chơi có thể di chuyển hình đến vị trí
các ô liền kề ( lên trên, xuống dưới, sang trái, sang phải) với ràng buộc rằng hình không thể di
chuyển đến vị trí kế tiếp nếu ô này chứa ký tự đã xuất hiện mà hình đã di chuyển qua. Mục đích của
trò chơi là chơi để có nhiều bước di chuyển nhất có thể được.
Viết chương trình xác định số vị trí tối đa trong bảng mà hình có thể viếng thăm trong trò chơi.
Dữ liệu vào: Vào từ tập tin văn bản LETTERS.INP
- Dòng thứ nhất chứa hai số nguyên R và C, được viết cách nhau bởi một dấu cách, (1 ≤ R, C ≤ 20 )
- R dòng tiếp theo chứa, mỗi dòng chứa 1 xâu ký tự. Mỗi dòng biểu diễn một hàng của bảng.
Kết quả ra: Ghi vào tập tin văn bản LETTERS.OUT một số nguyên là giá trị lớn nhất các vị trí mà
hình có thể di chuyển trên bảng.
Ví dụ:
LETTERS.INP LETTERS.OUT
2 4
CAAB
ADCB
3
3 6
HFDFFB
AJHGDH
DGAGEH
6
011 Hoán v ch cáiị ữ
Cho một xâu S chỉ gồm các chữ cái in hoa, 1 <= độ dài <= 9.
Yêu cầu:
1: Có bao nhiêu cách hoán vị các chữ cái của xâu S
2: Liệt kê các hoán vị đó theo thứ tự từ điển
Dữ liệu vào: Gồm 1 dòng duy nhất chứa xâu S
Dữ liệu ra:
+ Dòng 1: Ghi số lượng hoán vị tìm được (K)
+ K dòng tiếp theo, mỗi dòng ghi một xâu hoán vị của xâu S theo đúng thứ tự từ điển
Ví dụ:
QBHV.INP QBHV.OUT
ABAB 6
AABB
ABAB
ABBA
BAAB
BABA
BBAA
012. Nh ̃ng ngôi nhà 1ư
VOJ: http://vn.spoj.pl/problems/HOUSES/
Một công ty đầu tư xây dựng một khu nhà gồm L căn nhà nằm cạnh nhau trên một con đường.
Có N người muốn mua nhà ở khu nhà này, biết rằng người thứ i muốn mua ai căn nhà và mỗi người
đều muốn mua những căn nhà nằm cạnh nhau. Do số căn nhà cần mua có thể nhỏ hơn tổng số căn
nhà (L) nên sẽ có một số căn nhà chưa được bán. Để đảm bảo mỹ quan của khu nhà, công ty sẽ luôn
luôn bán căn nhà đầu tiên (theo thứ tự từ trái sang phải) và để lại những căn nhà chưa bán nằm
cạnh nhau (khác trên voj)
Biết yêu cầu của những người mua, một cách bán những căn nhà của công ty có thể được biểu
diễn bằng 1 dãy gồm L số. Trong đó số thứ i bằng 0 nếu căn nhà thứ i chưa được bán và bằng k nếu
căn nhà thứ i được bán cho người thứ k.
Ví dụ: khi L=4, N=2, a1 = 2, a2=1, dãy “2 0 1 1” thể hiện một cách bán những căn nhà của công
ty: căn nhà đầu tiên bán cho người thứ 2, căn nhà thứ 3 và thứ 4 bán cho người đầu tiên và căn nhà
thứ 2 được để lại
Yêu cầu: Hãy giúp công ty liệt kê các cách bán những căn nhà. Các cách bán căn nhà được liệt
kê theo thứ tự từ điển của dãy số biểu diễn. Nếu số cách bán căn nhà lớn hơn 1000, chỉ cần liệt kê
1000 cách đầu tiên. (Biết rằng dãy a có thứ tự từ điển đứng trước dãy b nếu và chỉ nếu tồn tại chỉ số
j, sao cho ai = bi với mọi i < j và aj < bj).
Dữ liệu vào: từ tệp HOUSES1.INP
+ Dòng đầu tiên: chứa 2 số nguyên L, N.
+ Dòng thứ 2 chứa N số nguyên, tương ứng là các giá trị a1, a2, …, an.
Hạn chế:
+ 1 ≤ L ≤ 100.
+ 1 ≤ N ≤ 20.
+ a1 + a2 + ... + aN ≤ L.
Dữ liệu ra: ghi vào tệp HOUES1.OUT
Gồm nhiều dòng, mỗi dòng tương ứng với dãy số biểu diễn một cách bán những căn nhà của
công ty, 2 số liên tiếp của dãy số được cách nhau bởi một khoảng trắng. Các dãy số được liệt kê
theo thứ tự từ điển.
Ví dụ
HOUSES1.INP HOUSES1.OUT
4 2
2 1
1 1 0 2
1 1 2 0
2 0 1 1
2 1 1 0
013. GIẢI MÃ SỐ
Các chữ số từ 1 đến 9 được mã hoá dưới dạng các từ chỉ chứa các ký tự a. b và c theo quy tắc sau:
Ví dụ số 132 sẽ được viết thành accb.
Yêu cầu: từ xâu ký tự cho trước, hãy tìm số nguyên dương tương ứng.
Dữ liệu: Vào từ file văn bản DECODE.INP xâu chứa không quá 100 ký tự a,b, c.
Kết quả: Đưa ra file văn bản DECODE.OUT số tương ứng hoặc -1 nếu xâu không tương ứng với
một số nguyên nào.
Ví dụ:
DECODE.INP DECODE.OUT
Chữ số 1 2 3 4 5 6 7 8 9
Mã a b cc bbc cbc abc bac aac cac
abcac 129
abccc 63
014. Phân tích
Cho một số nguyên dương N (N≤30) Hãy phân tích N thành tổng của các số nguyên dương. Các
cách phân tích là hoán vị của nhau chỉ tính là một cách
Dữ liệu vào: từ tệp văn bản TONG.INP gồm duy nhất một số N
Dữ liệu ra: ghi vào tệp văn bản TONG.OUT gồm nhiều dòng mỗi dòng là một cách phân tích
số N, cách dòng được sắp xếp theo chiều tăng dần. Các số trên một dòng được cách nhau 1 ký tự
trắng
Ví dụ:
TONG.INP TONG.OUT
6 1 1 1 1 1 1
1 1 1 1 2
1 1 1 3
1 1 2 2
1 1 4
1 2 3
1 5
2 2 2
2 4
3 3
6
015. Lệ phí
Nhân dịp năm mới, vua Per tổ chức một bữa tiệc để mọi người có thể ca hát, vui chơi với nhau
và được thưởng thức những món ăn ngon nổi tiếng mà trước đây chỉ dành cho những người thân
của nhà vua. Để bữa tiệc thêm phần vui vẻ, nhà vua cho phép tất cả mọi người đến tham dự, tuy
nhiên họ phải đóng một khoản lệ phí khi đến tham dự.
Là một người yêu thích cờ vua nên nhà vua đã cho quân lích chuẩn bị một bàn cờ vua kích
thước NxN, trên mỗi ô của bàn cờ được đặt một đồng tiền vàng (giá trị của chúng có thể khác
nhau). Muốn được tham gia bữa tiệc, mỗi người tham dự phải đến để đặt N quân hậu lên N ô khác
nhau trên bàn cờ vua sao cho chúng không được ăn nhau (theo luật cờ vua). Tổng số giá trị tiền
vàng ở các ô được đặt quân hậu là số tiền mà người đó phải trả.
Sau một năm làm việc vất vả, Pam tiết kiệm được K đồng tiền vàng và dự định dành hết số tiền
này để tham dự bữa tiệc. Hãy cho biết số tiền Pam có đủ để đóng tiền lệ phí tham gia bữa tiệc hay
không, nếu có thì cho biết số tiền ít nhất mà Pam cần dùng.
Dữ liệu vào: từ tệp văn bản LEPHI.INP
+ Dòng đầu tiên ghi số nguyên dương N, K (N≤16; 0<K≤1000)
+ Các dòng tiếp theo tạo thành một bảng số nguyên trong đó số ở dòng i cột j cho biết giá trị
đồng tiền vàng ở ô (i,j) tương ứng trên bàn cờ vua, mỗi số không vượt quá 1000. Các số trên 1 dòng
cách nhau ít nhất một ký tự trắng
Dữ liệu ra: ghi vào tệp văn bản LEPHI.OUT
+ Dòng đầu ghi YES hoặc NO tương ứng với việc Pam có đủ tiền để đóng lệ phí hay không
+ Nếu dòng đầu ghi YES thì dòng thứ 2 ghi số tiền ít nhất mà Pam cần dùng để đóng lệ phí
Ví dụ:
LEPHI.INP LEPHI.OUT
4 25
9 1 10 19
7 18 20 3
7 9 2 1
8 5 10 10
YES
21
016. Thế giới năm 1000003
Nguồn bài: http://vn.spoj.com/problems/VMKEY/
Nếu là một người ưa phát minh, chắc hẳn bạn sẽ cảm thấy thế giới năm 1000003 vô cùng nhàm
chán. Lúc này, tất cả mọi phát minh mà con người từng mơ ước tới đều đã trở thành hiện thực. Ô tô
bay, nhà bay, thành phố bay... đã xuất hiện nhiều nhan nhản. Tất cả mọi người sống trong những
ngôi nhà thông minh được điều khiển bởi giọng nói, ánh mắt hoặc suy nghĩ, với sự hỗ trợ của các
hệ thống máy tính hiện đại nhất. Con người có thể di chuyển tức thời giữa không gian (giữa các
hành tinh ở cách nhau hàng nghìn năm ánh sáng) và thời gian - điều này đã góp phần khiến cho dân
số thế giới tăng với tốc độ chóng mặt, vượt qua con số 10001000 vào năm 1000003.
Lúc này, những chiếc SmartPhone đã trở nên lỗi thời, do chúng không chịu được áp lực quá lớn
khi đi qua cổng dịch chuyển tức thời hoặc khi đi vào các cỗ máy thời gian. Tất cả mọi người đều
dùng điện thoại Nokia.
Do dân số thế giới đã tăng vượt mốc 10001000, những dãy số điện thoại cũng đã dài tới hàng
trăm nghìn chữ số. Điều này đã khiến cho việc bấm phím số điện thoại trở nên ác mộng. Trước tình
trạng này, hãng điện thoại Nokia đã đưa ra tính năng mới, cho phép bạn có thể thay đổi vị trí các
phím số trên bàn phím, để bạn có thể bấm số điện thoại một cách nhanh nhất có thể.
Thời gian để bạn bấm số điện thoại bằng tổng thời gian di chuyển của ngón tay bạn giữa các
phím số liên tiếp trong dãy số. Thời gian này đúng bằng khoảng cách Manhattan giữa 2 phím số:
Nếu phím số A ở dòng i, cột j, và phím số B ở dòng u, cột v, thì khoảng cách Manhattan giữa 2
phím số được tính theo công thức:
dist(A, B) = |i - u| + |j - v|
Chẳng hạn, bạn muốn gọi số 357468, nếu sử dụng bàn phím cổ điển:
1 2 3
4 5 6
7 8 9
0
bạn sẽ mất tổng thời gian là;
dist(3, 5) + dist(5, 7) + dist(7, 4) + dist(4, 6) + dist(6, 8)
= ( |1 - 2| + |3 - 2| ) + ( |2 - 3| + |2 - 1| ) + ( |3 - 2| + |1 - 1| ) + ( |2 - 2| + |1 - 3| ) + ( |2 - 3| + |3 - 2|)
= 2 + 2 + 1 + 2 + 2
= 9
Nhưng nếu bạn thay đổi vị trí các phím số như hình dưới:
3 5 7
8 6 4
1 2 9
0
thì bạn chỉ mất tổng thời gian là:
dist(3, 5) + dist(5, 7) + dist(7, 4) + dist(4, 6) + dist(6, 8)
= 1 + 1 + 1 + 1 + 1 = 5
Chú ý: Bạn chỉ được phép đổi chỗ các phím số, nghĩa là sau khi bạn thay đổi các phím số, mỗi
phím phải tương ứng với duy nhất 1 số, và mỗi số phải tương ứng với duy nhất 1 phím. Các phím
phải nằm đúng ở 10 vị trí chứa các số 0-9 trong bàn phím cổ điển. Các phím trên điện thọai được
đánh số hàng từ trên xuống dưới, đánh số cột từ trái sang phải (xem ví dụ).
Dữ liệu vào: từ tệp văn bản VMKEY.INP
Gồm 1 dòng duy nhất chứa dãy số điện thoại
Dữ liệu ra: ghi vào tệp văn bản VMKEY.OUT
Gồm 1 dòng duy nhất ghi thời gian nhỏ nhất để bạn bấm dãy số điện thoại, sau khi đã thay đổi
vị trí các phím số một cách hợp lý

More Related Content

Similar to Lxt de-quy-quay-lui

bài tập cấu trúc dữ liệu 6
bài tập cấu trúc dữ liệu 6bài tập cấu trúc dữ liệu 6
bài tập cấu trúc dữ liệu 6
NguynMinh294
 
bài tập cấu trúc dữ liệu 1
bài tập cấu trúc dữ liệu 1bài tập cấu trúc dữ liệu 1
bài tập cấu trúc dữ liệu 1
NguynMinh294
 
bài tập cấu trúc dữ liệu 2
bài tập cấu trúc dữ liệu 2bài tập cấu trúc dữ liệu 2
bài tập cấu trúc dữ liệu 2
NguynMinh294
 
Kc book
Kc bookKc book
Kc book
Pax Artics
 
bài tập cấu trúc dữ liệu 3
bài tập cấu trúc dữ liệu 3bài tập cấu trúc dữ liệu 3
bài tập cấu trúc dữ liệu 3
NguynMinh294
 
bài tập cấu trúc dữ liệu 4
bài tập cấu trúc dữ liệu 4bài tập cấu trúc dữ liệu 4
bài tập cấu trúc dữ liệu 4
NguynMinh294
 
bài tập cấu trúc dữ liệu 5
bài tập cấu trúc dữ liệu 5bài tập cấu trúc dữ liệu 5
bài tập cấu trúc dữ liệu 5
NguynMinh294
 
100 de tin hoc va nha truong-suu tam
100 de tin hoc va nha truong-suu tam100 de tin hoc va nha truong-suu tam
100 de tin hoc va nha truong-suu tam
kcuong2010
 
150 de tin hoc
150 de tin hoc150 de tin hoc
150 de tin hoc
Võ Tâm Long
 
bai tap cau truc du lieu ptit
bai tap cau truc du lieu ptitbai tap cau truc du lieu ptit
bai tap cau truc du lieu ptit
Mit Rin
 
Tai lieu boi_duong_hsg_mon_tin_cap_th_thcs_thpt
Tai lieu boi_duong_hsg_mon_tin_cap_th_thcs_thptTai lieu boi_duong_hsg_mon_tin_cap_th_thcs_thpt
Tai lieu boi_duong_hsg_mon_tin_cap_th_thcs_thpt
Phụng Lâm Thanh
 
Giao trinh ctmt
Giao trinh ctmtGiao trinh ctmt
Giao trinh ctmt
canh071179
 
100 de tin hoc va nha truong
100 de tin hoc va nha truong100 de tin hoc va nha truong
100 de tin hoc va nha truong
hao tran quang hao
 
bài tập cấu trúc dữ liệu 7
bài tập cấu trúc dữ liệu 7bài tập cấu trúc dữ liệu 7
bài tập cấu trúc dữ liệu 7
NguynMinh294
 
TinHoc_tuyentapde_nk
TinHoc_tuyentapde_nkTinHoc_tuyentapde_nk
TinHoc_tuyentapde_nk
Quyen Hong
 
Lop10 _Chương1_ Bài 2 : Thông Tin Và Dữ Liệu
Lop10 _Chương1_ Bài 2 : Thông Tin Và Dữ Liệu Lop10 _Chương1_ Bài 2 : Thông Tin Và Dữ Liệu
Lop10 _Chương1_ Bài 2 : Thông Tin Và Dữ Liệu
SP Tin K34
 
CHƯƠNG I_Lop10 bai2_THÔNG TIN VÀ DỮ LIỆU
CHƯƠNG I_Lop10  bai2_THÔNG TIN VÀ DỮ LIỆUCHƯƠNG I_Lop10  bai2_THÔNG TIN VÀ DỮ LIỆU
CHƯƠNG I_Lop10 bai2_THÔNG TIN VÀ DỮ LIỆU
SP Tin K34
 
Dientuso Sld
Dientuso SldDientuso Sld
Dientuso Sld
hoadktd
 

Similar to Lxt de-quy-quay-lui (20)

bài tập cấu trúc dữ liệu 6
bài tập cấu trúc dữ liệu 6bài tập cấu trúc dữ liệu 6
bài tập cấu trúc dữ liệu 6
 
bài tập cấu trúc dữ liệu 1
bài tập cấu trúc dữ liệu 1bài tập cấu trúc dữ liệu 1
bài tập cấu trúc dữ liệu 1
 
bài tập cấu trúc dữ liệu 2
bài tập cấu trúc dữ liệu 2bài tập cấu trúc dữ liệu 2
bài tập cấu trúc dữ liệu 2
 
Kc book
Kc bookKc book
Kc book
 
bài tập cấu trúc dữ liệu 3
bài tập cấu trúc dữ liệu 3bài tập cấu trúc dữ liệu 3
bài tập cấu trúc dữ liệu 3
 
bài tập cấu trúc dữ liệu 4
bài tập cấu trúc dữ liệu 4bài tập cấu trúc dữ liệu 4
bài tập cấu trúc dữ liệu 4
 
bài tập cấu trúc dữ liệu 5
bài tập cấu trúc dữ liệu 5bài tập cấu trúc dữ liệu 5
bài tập cấu trúc dữ liệu 5
 
100 de tin hoc va nha truong-suu tam
100 de tin hoc va nha truong-suu tam100 de tin hoc va nha truong-suu tam
100 de tin hoc va nha truong-suu tam
 
150 de tin hoc
150 de tin hoc150 de tin hoc
150 de tin hoc
 
150+de+tin+hoc
150+de+tin+hoc150+de+tin+hoc
150+de+tin+hoc
 
bai tap cau truc du lieu ptit
bai tap cau truc du lieu ptitbai tap cau truc du lieu ptit
bai tap cau truc du lieu ptit
 
Tai lieu boi_duong_hsg_mon_tin_cap_th_thcs_thpt
Tai lieu boi_duong_hsg_mon_tin_cap_th_thcs_thptTai lieu boi_duong_hsg_mon_tin_cap_th_thcs_thpt
Tai lieu boi_duong_hsg_mon_tin_cap_th_thcs_thpt
 
Giao trinh ctmt
Giao trinh ctmtGiao trinh ctmt
Giao trinh ctmt
 
100 de tin hoc va nha truong
100 de tin hoc va nha truong100 de tin hoc va nha truong
100 de tin hoc va nha truong
 
bài tập cấu trúc dữ liệu 7
bài tập cấu trúc dữ liệu 7bài tập cấu trúc dữ liệu 7
bài tập cấu trúc dữ liệu 7
 
TinHoc_tuyentapde_nk
TinHoc_tuyentapde_nkTinHoc_tuyentapde_nk
TinHoc_tuyentapde_nk
 
Phan1 chuong1
Phan1 chuong1Phan1 chuong1
Phan1 chuong1
 
Lop10 _Chương1_ Bài 2 : Thông Tin Và Dữ Liệu
Lop10 _Chương1_ Bài 2 : Thông Tin Và Dữ Liệu Lop10 _Chương1_ Bài 2 : Thông Tin Và Dữ Liệu
Lop10 _Chương1_ Bài 2 : Thông Tin Và Dữ Liệu
 
CHƯƠNG I_Lop10 bai2_THÔNG TIN VÀ DỮ LIỆU
CHƯƠNG I_Lop10  bai2_THÔNG TIN VÀ DỮ LIỆUCHƯƠNG I_Lop10  bai2_THÔNG TIN VÀ DỮ LIỆU
CHƯƠNG I_Lop10 bai2_THÔNG TIN VÀ DỮ LIỆU
 
Dientuso Sld
Dientuso SldDientuso Sld
Dientuso Sld
 

More from Hate To Love

Anhcd khoi a1_d_2014_giao_duc_9683
Anhcd khoi a1_d_2014_giao_duc_9683Anhcd khoi a1_d_2014_giao_duc_9683
Anhcd khoi a1_d_2014_giao_duc_9683Hate To Love
 
Chuong 15 lan-internet
Chuong 15 lan-internetChuong 15 lan-internet
Chuong 15 lan-internetHate To Love
 
Chuong 14 pq-magic
Chuong 14 pq-magicChuong 14 pq-magic
Chuong 14 pq-magicHate To Love
 
Chuong 12 setup-win-xp
Chuong 12 setup-win-xpChuong 12 setup-win-xp
Chuong 12 setup-win-xpHate To Love
 
Chuong 11 setup-win98
Chuong 11 setup-win98Chuong 11 setup-win98
Chuong 11 setup-win98Hate To Love
 
Chuong 10 laprap-mt
Chuong 10 laprap-mtChuong 10 laprap-mt
Chuong 10 laprap-mtHate To Love
 
Chuong 8 key-mouse
Chuong 8 key-mouseChuong 8 key-mouse
Chuong 8 key-mouseHate To Love
 
Chuong 3 mainboard
Chuong 3 mainboardChuong 3 mainboard
Chuong 3 mainboardHate To Love
 
Chuong 2 case-power
Chuong 2 case-powerChuong 2 case-power
Chuong 2 case-powerHate To Love
 
Khai niem ve mang lan
Khai niem ve mang lanKhai niem ve mang lan
Khai niem ve mang lanHate To Love
 
Cac buoc thiet lap mang lan
Cac buoc thiet lap mang lanCac buoc thiet lap mang lan
Cac buoc thiet lap mang lanHate To Love
 
Cac buoc thiet lap mang lan(tiep)
Cac buoc thiet lap mang lan(tiep)Cac buoc thiet lap mang lan(tiep)
Cac buoc thiet lap mang lan(tiep)Hate To Love
 

More from Hate To Love (20)

Anhcd khoi a1_d_2014_giao_duc_9683
Anhcd khoi a1_d_2014_giao_duc_9683Anhcd khoi a1_d_2014_giao_duc_9683
Anhcd khoi a1_d_2014_giao_duc_9683
 
Chuong 16 suachua
Chuong 16 suachuaChuong 16 suachua
Chuong 16 suachua
 
Chuong 15 lan-internet
Chuong 15 lan-internetChuong 15 lan-internet
Chuong 15 lan-internet
 
Chuong 14 pq-magic
Chuong 14 pq-magicChuong 14 pq-magic
Chuong 14 pq-magic
 
Chuong 13 ghost
Chuong 13 ghostChuong 13 ghost
Chuong 13 ghost
 
Chuong 12 setup-win-xp
Chuong 12 setup-win-xpChuong 12 setup-win-xp
Chuong 12 setup-win-xp
 
Chuong 11 setup-win98
Chuong 11 setup-win98Chuong 11 setup-win98
Chuong 11 setup-win98
 
Chuong 10 laprap-mt
Chuong 10 laprap-mtChuong 10 laprap-mt
Chuong 10 laprap-mt
 
Chuong 9 cards
Chuong 9 cardsChuong 9 cards
Chuong 9 cards
 
Chuong 8 key-mouse
Chuong 8 key-mouseChuong 8 key-mouse
Chuong 8 key-mouse
 
Chuong 7 cd-rom
Chuong 7 cd-romChuong 7 cd-rom
Chuong 7 cd-rom
 
Chuong 6 hdd
Chuong 6 hddChuong 6 hdd
Chuong 6 hdd
 
Chuong 5 ram
Chuong 5 ramChuong 5 ram
Chuong 5 ram
 
Chuong 4 cpu
Chuong 4 cpuChuong 4 cpu
Chuong 4 cpu
 
Chuong 3 mainboard
Chuong 3 mainboardChuong 3 mainboard
Chuong 3 mainboard
 
Chuong 2 case-power
Chuong 2 case-powerChuong 2 case-power
Chuong 2 case-power
 
Chuong 1 tongquan
Chuong 1 tongquanChuong 1 tongquan
Chuong 1 tongquan
 
Khai niem ve mang lan
Khai niem ve mang lanKhai niem ve mang lan
Khai niem ve mang lan
 
Cac buoc thiet lap mang lan
Cac buoc thiet lap mang lanCac buoc thiet lap mang lan
Cac buoc thiet lap mang lan
 
Cac buoc thiet lap mang lan(tiep)
Cac buoc thiet lap mang lan(tiep)Cac buoc thiet lap mang lan(tiep)
Cac buoc thiet lap mang lan(tiep)
 

Lxt de-quy-quay-lui

  • 1. 001 Đ t quân h uặ ậ Cho bàn cờ vua kích thước NxN. Yêu cầu liệt kê tất cả các cách đặt N quân hậu lên bàn cờ vua sao cho chúng không thể ăn nhau. Dữ liệu vào: Trong file HAU.INP là một số nguyên dương N duy nhất N≤16 Dữ liệu ra: ghi vào file HAU.OUT gồm nhiều dòng, mỗi dòng là một cách đặt N quân hậu lên bàn cờ vua 002 Đ ng đi ng n nh tườ ắ ấ Trong vấn đề tranh chấp biển Đông, Việt Nam kiện TQ lên toàn án Quốc tế vì TQ đã vi phạm chủ quyền Việt Nam. Để tìm bằng chứng quần đảo Hoàng Sa là của Việt Nam, toàn án quốc tế đã cử người sang nước ta. Trước khi đến Hoàng Sa, người ta đã lập ra một bản đồ hình chữ nhật kích thước MxN, trong đó, mỗi ô của bản đồ là một đảo và giá trị trong mỗi ô là số lượng bằng chứng có được trên đảo. Tòa án quốc tế đã chuẩn bị trước lịch trình để thu thập chứng cứ trên tất cả các đảo, tuy nhiên TQ đã biết được điều này nên trên một số hòn đảo bằng chứng có lợi cho nước ta đã bị đánh tráo thành bằng chứng có lợi cho TQ. Khi người của toà án quốc tế bắt đầu xuất phát trên hòn đảo có tọa độ (1,1) thì tình báo Việt Nam phát hiện nhiều hòn đảo đã bị đánh tráo bằng chứng đồng thời tàu chiến TQ đang đuổi theo từ phía sau và bên trái do vậy kế hoạch đường đi của toàn án phải thay đổi: Tàu của toàn án chỉ được đi thẳng hoặc rẽ phải và chỉ ghé thăm những hòn đảo nào có chứng cứ có lợi cho Việt Nam Yêu cầu: hãy viết chương trình lập đường đi cho tàu của tòa án đi qua các đảo để số lượng bằng chứng thu được cho Việt Nam là lớn nhất khi tàu đi đến hòn đảo có tọa độ MxN. Dữ liệu vào: Từ file BC.INP + Dòng đầu tiên ghi hai số nguyên dương M và N + M dòng tiếp theo, mỗi dòng ghi N số nguyên. Số nguyên ở dòng i cột j cho biết số lượng bằng chứng có lợi có thể thu được từ hòn đảo này, nếu băng 0 có nghĩa là bằng chứng đã bị TQ đánh tráo. + Ô (1,1) và ô (M,N) có giá trị dương Dữ liệu ra: ghi vào file BC.OUT là một số nguyên duy nhất cho biết số lượng bằng chứng nhiều nhất thu được Ví dụ: BC.INP BC.OUT 4 5 1 2 3 0 5 1 0 2 2 5 3 2 7 0 3 2 2 1 1 6 24 003 Lâu Đài Splendid, vua xứ Byteotia muốn cho cô con gái xinh đẹp của mình – công chúa Ada xuất giá. Ông hỏi con gái muốn người chồng của mình phải thế nào. Công chúa trả lời là chồng tương lai phải là một người thông minh, đồng thời không hoang phí cũng như không keo kiệt bủn xỉn. Nhà vua suy nghĩ khá lâu về cách kiểm tra để chọn cho công chúa người tốt nhất. Cuối cùng ông thấy hay nhất là sử dụng lâu đài của mình để tổ chức tiếp đãi mọi cư dân của Byteotia. Lâu đài có rất
  • 2. nhiều phòng, trong đó trưng bày các báu vật quốc gia. Theo các hành lang trong lâu đài, người ta có thể ghé vào phòng này hay phòng khác, ngắm nhìn các hiện vật độc đáo trưng bày,mang lại những kinh ngạc thích thú cho người xem. Để ghé vào mỗi phòng, người tham quan phải trả một số Bytealer (đơn vị tiền tệ của Byteotia). Cuộc tham quan bắt đầu từ phòng có cửa vào lâu đài. Nhà vua trao cho mỗi người trong diện có thể chọn làm phò mã một túi tiền, với một số lượng Bytealer như nhau. Nhà vua yêu cầu mỗi người tự chọn đường đi tham quan, bắt đầu từ phòng vào lâu đài và kết thúc ở phòng công chúa ngồi. Mỗi người được yêu cầu chi hết đúng số tiền trong túi được trao. Những người hoang phí chi quá nhiều cho việc ghé xem các phòng trưng bày và hết tiền trước khi đến được phòng công chúa. Ngược lại, những người keo kiệt tới phòng công chúa với túi vẫn còn tiền, kết quả là bị công chúa đuổi ra ngoài sau khi thu hết số tiền dư trong túi. Yêu cầu: Chỉ ra dãy phòng cần ghé xem trên đường đi tới phòng công chúa và tiêu hết đúng số tiền trong túi được trao. Dữ liệu vào đảm bảo có lời giải. Nếu có nhiều lời giải thì chỉ cần nêu một trong số đó. Dữ liệu: Vào từ file văn bản CASTLE.INP: • Dòng đầu tiên có 5 số nguyên n, m, e, p, b, 1<=n<=100, 1<=m<=4950, 1<=e,p<=n, 1<=b<=1000, trong đó n - số phòng, m - số hành lang, các phòng được đánh số từ 1 đến n, e – phòng vào lâu đài, p- phòng có công chúa, b - số Bytealer trong túi; • Dòng thứ 2 chứa n số nguyên dương c1, c2,..., cn, 1<=ci<=1000, ci - tiền cần trả để vào xem phòng i; • m dòng tiếp theo: mỗi dòng chứa một cặp số nguyên dương x, y, (x<>y, 1<=x,y<=n),cho biết có hành lang nối 2 phòng x và y. Các số trên một dòng các nhau ít nhất một dấu cách. Kết quả: Đưa ra file văn bản CASTLE.OUT dãy số nguyên xác định các phòng cần ghé từ, đi từ e đến p. Ví dụ: CASTLE.INP CASTLE.OUT 5 6 3 4 9 3 2 4 1 2 3 4 5 2 4 5 4 1 5 1 2 2 3 3 1 004 Tìm bi u th cể ứ Cho xâu số N= ‘123456789’ và số nguyên M Yêu cầu: Hãy tìm cách chèn vào N các dấu cộng hoặc trừ để thu được biểu thức có giá trị bằng M (nếu có thể)
  • 3. Dữ liệu vào: Đọc từ file văn bản BTHUC.INP có nội dung duy nhất là số nguyên M Dữ liệu ra: Ghi vào file văn bản BTHUC.OUT. Ghi tất cả các biểu thức thu được nếu có, nếu không thu được biểu thức nào có giá trị bằng M thì ghi là “KHONG CO” Ví dụ: BTHUC.INP BTHUC.OUT 500 1-234-56+789 1-2+345+67+89 -12+34+567-89 1000 KHONG CO 005 Quân mã Trên bàn cờ kích thước NxN (1≤N≤200). Trên bàn cờ có M quân hậu (0≤M≤N), mỗi quân hậu có thể kiểm soát các ô trên cùng hàng, cùng cột và cùng đường chéo với nó. Không có hai quân hậu nằm cùng một ô. Trên các ô còn lại của bàn cờ, tại ô (x,y) có một quân mã có mức năng lượng bằng 0, nó có thể nhảy đến 1 trong 8 ô xung quanh nó theo luật cờ vua. Nếu nó nhảy đến 1 ô có quân hậu kiểm soát thì mức năng lượng của nó tăng lên một đơn vị. Yêu cầu: Tìm đường đi của quân mã từ ô (x,y) đến ô (p,q) sao cho số bước di chuyển là ít nhất. Nếu có nhiều đường có cùng số bước di chuyển thì chọn đường đi sao cho sau khi đến ô (p,q) quân mã có mức năng lượng cao nhất. Dữ liệu vào: Tệp văn bản KNIGHT.INP + Dòng đầu chứa 6 số nguyên N, M, X, Y, P, Q + M dòng tiếp theo mỗi dòng chứa hai số nguyên lần lượt là tọa độ hàng và cột của các quân hậu + Các số trên một dòng cách nhau ít nhất 1 khoảng trắng Dữ liệu ra: Tệp văn bản KNIGHT.OUT + Một số dòng đầu là các bước đi của quân mã + Dòng tiếp theo là số bước di chuyển của quân mã + Dòng cuối cùng chứa một số nguyên là mức năng lượng của quân mã khi đến ô (p,q) + Nếu không có đường đi thì ghi -1 Ví dụ: KNIGHT.INP KNIGHT.OUT 5 2 3 3 4 4 2 2 1 5 3 3 5 2 4 4 2 2 006 xâu văn b nả Viết chương trình ghi vào file văn bản tất cả các dãy số sắp xếp theo thứ tự từ điển được tạo thành từ các số 1, 2, 3. Các dãy số cũng được sắp xếp theo thứ tự từ điện và không có 2 số liên tiếp nào giống nhau.
  • 4. Dữ liệu vào: Từ file văn bản XVB.INP chỉ chứa 1 số nguyên dương n duy nhất (n>0) Dữ liệu ra: Được ghi vào file văn bản XVB.OUT mỗi dãy được ghi trên một dòng, dòng cuối cùng ghi 1 số nguyên cho biết có bao nhiêu dãy số Ví dụ: với n=2 , nội dung của file XVB.OUT như sau: XVB.INT XVB.OUT 2 1 12 13 2 21 23 3 31 32 007 Cung đi n (Olympic 2011)ệ Ở một vương quốc nọ có 1 vị vua và ông có N quý phi. Trên miếng đất hình vuông có kích thước NxN, nhà vua muốn xây dựng cho mỗi quý phi, mỗi người một cung điện (giả sử mỗi cung điện đều nằm trên một mảnh đất kích thước 1x1). Vấn đề là các quý phi này có tính ghen ghét nhau nên nhà vua không muốn các cung điện nhìn thấy nhau từ các hướng (ngang, dọc, chéo). Chi phí xây dựng các cung điện trên mỗi ô đất có thể có giá thành khác nhau. Nhà vua muốn xây dựng N cung điện với tổng chi phí thấp nhất. Yêu vầu: Bạn hãy giúp nhà vua thực hiện công việc đó Dữ liệu vào: Từ file văn bản CUNGDIEN.INP gồm N+1 dòng - Dòng đầu chứa số N (1≤N≤16) - N dòng sau, mỗi dòng chứa N số là chi phí xây dựng tại ô đất tương ứng (Chi phí xây dựng cung điện trong một ô có giá trị nguyên từ 1 đến 100). Mỗi số cách nhau ít nhất một khoảng trắng Dữ liệu ra: Ghi ra file văn bản CUNGDIEN.OUT gồm một số duy nhất cho biết tổng chỉ phí thấp nhất cho việc xây dựng. Giả sử dữ liệu luôn có lời giải Ví dụ: CUNGDIEN.INP CUNGDIEN.OUT 4 3 4 12 3 6 1 7 1 2 4 1 5 12 3 8 7 15 *Giải thích: Các ô được chọn là (1,2), (2,4), (3,1), (4,3) 008 X s đi n toánổ ố ệ Có N người (đánh số từ 1 đến N) tham gia một đợt xổ số điện toán. Mỗi người nhận được một thẻ gồm M ô (đánh số từ 1 đếnM). Người chơi được chọn K ô trong số các ô đã cho bằng cách đánh dấu các ô được chọn. Sau đó các thẻ này được đưa vào máy tính để xử lý. Máy tính chọn ra K ô ngẫu nhiên (gọi là các ô kết quả) và chấm điểm từng thẻ dựa vào kết quả đã sinh. Cứ mỗi ô chọn đúng với ô kết quả thì thẻ chơi được tính 1 điểm. Giả thiết biết các ô chọn cũng như các điểm tương ứng của từng thẻ chơi, hãy xác định tất cả các kết quả có thể có mà máy sinh ra. Dữ liệu vào đọc từ file vănbản XOSO.INP gồm: - Dòng đầu ghi cácsố N, M, K
  • 5. - Dòng thứ i trongN dòng tiếp ghi thẻ chơi của người i gồm K+1 số: K số đầu là các số hiệu của các ô chọn, cuối cùng là điểm tương ứng. Ghi kết quả ra file văn bản XOSO.OUT, mỗi dòng là một kết quả gồm K số ghi số hiệu các ô mà máy đã sinh. Ghi chú: - Các số trên cùng mộtdòng trong các file vào/ ra, được ghi cách nhau ít nhất một dấu trắng. - Giới hạn kích thước:N ≤ 100, M ≤50, K ≤10. - Dữ liệu vào trong các test là hợp lệ và đảm bảo có ít nhất một đáp án. Ví dụ: 009 Vòng tròn s nguyên tố ố Một vòng tròn chứa n vòng tròn nhỏ (n chẵn). Các vòng tròn nhỏ được đánh số từ 1 đến n theo chiều kim đồng hồ. Cần điền các số tự nhiên từ 1 đến n vào các vòng tròn nhỏ sao cho tổng của 2 số trên 2 vòng tròn nhỏ liên tiếp là số nguyên tố. Vòng tròn 1 luôn được ghi số 1. Ví dụ với N=6 ta có 1 cách điền như hình vẽ sau: Dữ liệu: Vào từ tập tin RING.INP chứa số nguyên dương chẵn n (2 < n < 20). Kết quả: Ghi vào tập tin văn bản RING.OUT, gồm nhiều dòng, mỗi dòng là một cách điền, các số trên một dòng cách nhau bằng 1 ký tự trắng Ví dụ: RING.INP RING.OUT RING.INP RING.OUT 6 1 4 3 2 5 6 1 6 5 2 3 4 8 1 2 3 8 5 6 7 4 1 2 5 8 3 4 7 6 1 4 7 6 5 8 3 2 1 6 7 4 3 8 5 2 010: Các ký tự Tên chương trình: LETTERS.PAS 1 4 3 2 5 6
  • 6. Trò chơi được mô tả như sau: trên một bảng hình chữ nhật chia R hàng và C cột có các ký tự chữ hoa (A-Z) được viết trên mỗi ô của bảng. Trước khi bắt đầu trò chơi có một hình ở góc trên bên trái của bảng(hàng 1, cột 1). Trong mỗi bước di chuyển, một người chơi có thể di chuyển hình đến vị trí các ô liền kề ( lên trên, xuống dưới, sang trái, sang phải) với ràng buộc rằng hình không thể di chuyển đến vị trí kế tiếp nếu ô này chứa ký tự đã xuất hiện mà hình đã di chuyển qua. Mục đích của trò chơi là chơi để có nhiều bước di chuyển nhất có thể được. Viết chương trình xác định số vị trí tối đa trong bảng mà hình có thể viếng thăm trong trò chơi. Dữ liệu vào: Vào từ tập tin văn bản LETTERS.INP - Dòng thứ nhất chứa hai số nguyên R và C, được viết cách nhau bởi một dấu cách, (1 ≤ R, C ≤ 20 ) - R dòng tiếp theo chứa, mỗi dòng chứa 1 xâu ký tự. Mỗi dòng biểu diễn một hàng của bảng. Kết quả ra: Ghi vào tập tin văn bản LETTERS.OUT một số nguyên là giá trị lớn nhất các vị trí mà hình có thể di chuyển trên bảng. Ví dụ: LETTERS.INP LETTERS.OUT 2 4 CAAB ADCB 3 3 6 HFDFFB AJHGDH DGAGEH 6 011 Hoán v ch cáiị ữ Cho một xâu S chỉ gồm các chữ cái in hoa, 1 <= độ dài <= 9. Yêu cầu: 1: Có bao nhiêu cách hoán vị các chữ cái của xâu S 2: Liệt kê các hoán vị đó theo thứ tự từ điển Dữ liệu vào: Gồm 1 dòng duy nhất chứa xâu S Dữ liệu ra: + Dòng 1: Ghi số lượng hoán vị tìm được (K) + K dòng tiếp theo, mỗi dòng ghi một xâu hoán vị của xâu S theo đúng thứ tự từ điển Ví dụ: QBHV.INP QBHV.OUT ABAB 6 AABB ABAB ABBA BAAB BABA BBAA 012. Nh ̃ng ngôi nhà 1ư VOJ: http://vn.spoj.pl/problems/HOUSES/ Một công ty đầu tư xây dựng một khu nhà gồm L căn nhà nằm cạnh nhau trên một con đường. Có N người muốn mua nhà ở khu nhà này, biết rằng người thứ i muốn mua ai căn nhà và mỗi người đều muốn mua những căn nhà nằm cạnh nhau. Do số căn nhà cần mua có thể nhỏ hơn tổng số căn nhà (L) nên sẽ có một số căn nhà chưa được bán. Để đảm bảo mỹ quan của khu nhà, công ty sẽ luôn
  • 7. luôn bán căn nhà đầu tiên (theo thứ tự từ trái sang phải) và để lại những căn nhà chưa bán nằm cạnh nhau (khác trên voj) Biết yêu cầu của những người mua, một cách bán những căn nhà của công ty có thể được biểu diễn bằng 1 dãy gồm L số. Trong đó số thứ i bằng 0 nếu căn nhà thứ i chưa được bán và bằng k nếu căn nhà thứ i được bán cho người thứ k. Ví dụ: khi L=4, N=2, a1 = 2, a2=1, dãy “2 0 1 1” thể hiện một cách bán những căn nhà của công ty: căn nhà đầu tiên bán cho người thứ 2, căn nhà thứ 3 và thứ 4 bán cho người đầu tiên và căn nhà thứ 2 được để lại Yêu cầu: Hãy giúp công ty liệt kê các cách bán những căn nhà. Các cách bán căn nhà được liệt kê theo thứ tự từ điển của dãy số biểu diễn. Nếu số cách bán căn nhà lớn hơn 1000, chỉ cần liệt kê 1000 cách đầu tiên. (Biết rằng dãy a có thứ tự từ điển đứng trước dãy b nếu và chỉ nếu tồn tại chỉ số j, sao cho ai = bi với mọi i < j và aj < bj). Dữ liệu vào: từ tệp HOUSES1.INP + Dòng đầu tiên: chứa 2 số nguyên L, N. + Dòng thứ 2 chứa N số nguyên, tương ứng là các giá trị a1, a2, …, an. Hạn chế: + 1 ≤ L ≤ 100. + 1 ≤ N ≤ 20. + a1 + a2 + ... + aN ≤ L. Dữ liệu ra: ghi vào tệp HOUES1.OUT Gồm nhiều dòng, mỗi dòng tương ứng với dãy số biểu diễn một cách bán những căn nhà của công ty, 2 số liên tiếp của dãy số được cách nhau bởi một khoảng trắng. Các dãy số được liệt kê theo thứ tự từ điển. Ví dụ HOUSES1.INP HOUSES1.OUT 4 2 2 1 1 1 0 2 1 1 2 0 2 0 1 1 2 1 1 0 013. GIẢI MÃ SỐ Các chữ số từ 1 đến 9 được mã hoá dưới dạng các từ chỉ chứa các ký tự a. b và c theo quy tắc sau: Ví dụ số 132 sẽ được viết thành accb. Yêu cầu: từ xâu ký tự cho trước, hãy tìm số nguyên dương tương ứng. Dữ liệu: Vào từ file văn bản DECODE.INP xâu chứa không quá 100 ký tự a,b, c. Kết quả: Đưa ra file văn bản DECODE.OUT số tương ứng hoặc -1 nếu xâu không tương ứng với một số nguyên nào. Ví dụ: DECODE.INP DECODE.OUT Chữ số 1 2 3 4 5 6 7 8 9 Mã a b cc bbc cbc abc bac aac cac
  • 8. abcac 129 abccc 63 014. Phân tích Cho một số nguyên dương N (N≤30) Hãy phân tích N thành tổng của các số nguyên dương. Các cách phân tích là hoán vị của nhau chỉ tính là một cách Dữ liệu vào: từ tệp văn bản TONG.INP gồm duy nhất một số N Dữ liệu ra: ghi vào tệp văn bản TONG.OUT gồm nhiều dòng mỗi dòng là một cách phân tích số N, cách dòng được sắp xếp theo chiều tăng dần. Các số trên một dòng được cách nhau 1 ký tự trắng Ví dụ: TONG.INP TONG.OUT 6 1 1 1 1 1 1 1 1 1 1 2 1 1 1 3 1 1 2 2 1 1 4 1 2 3 1 5 2 2 2 2 4 3 3 6 015. Lệ phí Nhân dịp năm mới, vua Per tổ chức một bữa tiệc để mọi người có thể ca hát, vui chơi với nhau và được thưởng thức những món ăn ngon nổi tiếng mà trước đây chỉ dành cho những người thân của nhà vua. Để bữa tiệc thêm phần vui vẻ, nhà vua cho phép tất cả mọi người đến tham dự, tuy nhiên họ phải đóng một khoản lệ phí khi đến tham dự. Là một người yêu thích cờ vua nên nhà vua đã cho quân lích chuẩn bị một bàn cờ vua kích thước NxN, trên mỗi ô của bàn cờ được đặt một đồng tiền vàng (giá trị của chúng có thể khác nhau). Muốn được tham gia bữa tiệc, mỗi người tham dự phải đến để đặt N quân hậu lên N ô khác nhau trên bàn cờ vua sao cho chúng không được ăn nhau (theo luật cờ vua). Tổng số giá trị tiền vàng ở các ô được đặt quân hậu là số tiền mà người đó phải trả. Sau một năm làm việc vất vả, Pam tiết kiệm được K đồng tiền vàng và dự định dành hết số tiền này để tham dự bữa tiệc. Hãy cho biết số tiền Pam có đủ để đóng tiền lệ phí tham gia bữa tiệc hay không, nếu có thì cho biết số tiền ít nhất mà Pam cần dùng. Dữ liệu vào: từ tệp văn bản LEPHI.INP + Dòng đầu tiên ghi số nguyên dương N, K (N≤16; 0<K≤1000) + Các dòng tiếp theo tạo thành một bảng số nguyên trong đó số ở dòng i cột j cho biết giá trị đồng tiền vàng ở ô (i,j) tương ứng trên bàn cờ vua, mỗi số không vượt quá 1000. Các số trên 1 dòng cách nhau ít nhất một ký tự trắng Dữ liệu ra: ghi vào tệp văn bản LEPHI.OUT
  • 9. + Dòng đầu ghi YES hoặc NO tương ứng với việc Pam có đủ tiền để đóng lệ phí hay không + Nếu dòng đầu ghi YES thì dòng thứ 2 ghi số tiền ít nhất mà Pam cần dùng để đóng lệ phí Ví dụ: LEPHI.INP LEPHI.OUT 4 25 9 1 10 19 7 18 20 3 7 9 2 1 8 5 10 10 YES 21 016. Thế giới năm 1000003 Nguồn bài: http://vn.spoj.com/problems/VMKEY/ Nếu là một người ưa phát minh, chắc hẳn bạn sẽ cảm thấy thế giới năm 1000003 vô cùng nhàm chán. Lúc này, tất cả mọi phát minh mà con người từng mơ ước tới đều đã trở thành hiện thực. Ô tô bay, nhà bay, thành phố bay... đã xuất hiện nhiều nhan nhản. Tất cả mọi người sống trong những ngôi nhà thông minh được điều khiển bởi giọng nói, ánh mắt hoặc suy nghĩ, với sự hỗ trợ của các hệ thống máy tính hiện đại nhất. Con người có thể di chuyển tức thời giữa không gian (giữa các hành tinh ở cách nhau hàng nghìn năm ánh sáng) và thời gian - điều này đã góp phần khiến cho dân số thế giới tăng với tốc độ chóng mặt, vượt qua con số 10001000 vào năm 1000003. Lúc này, những chiếc SmartPhone đã trở nên lỗi thời, do chúng không chịu được áp lực quá lớn khi đi qua cổng dịch chuyển tức thời hoặc khi đi vào các cỗ máy thời gian. Tất cả mọi người đều dùng điện thoại Nokia. Do dân số thế giới đã tăng vượt mốc 10001000, những dãy số điện thoại cũng đã dài tới hàng trăm nghìn chữ số. Điều này đã khiến cho việc bấm phím số điện thoại trở nên ác mộng. Trước tình trạng này, hãng điện thoại Nokia đã đưa ra tính năng mới, cho phép bạn có thể thay đổi vị trí các phím số trên bàn phím, để bạn có thể bấm số điện thoại một cách nhanh nhất có thể. Thời gian để bạn bấm số điện thoại bằng tổng thời gian di chuyển của ngón tay bạn giữa các phím số liên tiếp trong dãy số. Thời gian này đúng bằng khoảng cách Manhattan giữa 2 phím số: Nếu phím số A ở dòng i, cột j, và phím số B ở dòng u, cột v, thì khoảng cách Manhattan giữa 2 phím số được tính theo công thức: dist(A, B) = |i - u| + |j - v| Chẳng hạn, bạn muốn gọi số 357468, nếu sử dụng bàn phím cổ điển: 1 2 3 4 5 6 7 8 9 0 bạn sẽ mất tổng thời gian là; dist(3, 5) + dist(5, 7) + dist(7, 4) + dist(4, 6) + dist(6, 8) = ( |1 - 2| + |3 - 2| ) + ( |2 - 3| + |2 - 1| ) + ( |3 - 2| + |1 - 1| ) + ( |2 - 2| + |1 - 3| ) + ( |2 - 3| + |3 - 2|) = 2 + 2 + 1 + 2 + 2 = 9 Nhưng nếu bạn thay đổi vị trí các phím số như hình dưới:
  • 10. 3 5 7 8 6 4 1 2 9 0 thì bạn chỉ mất tổng thời gian là: dist(3, 5) + dist(5, 7) + dist(7, 4) + dist(4, 6) + dist(6, 8) = 1 + 1 + 1 + 1 + 1 = 5 Chú ý: Bạn chỉ được phép đổi chỗ các phím số, nghĩa là sau khi bạn thay đổi các phím số, mỗi phím phải tương ứng với duy nhất 1 số, và mỗi số phải tương ứng với duy nhất 1 phím. Các phím phải nằm đúng ở 10 vị trí chứa các số 0-9 trong bàn phím cổ điển. Các phím trên điện thọai được đánh số hàng từ trên xuống dưới, đánh số cột từ trái sang phải (xem ví dụ). Dữ liệu vào: từ tệp văn bản VMKEY.INP Gồm 1 dòng duy nhất chứa dãy số điện thoại Dữ liệu ra: ghi vào tệp văn bản VMKEY.OUT Gồm 1 dòng duy nhất ghi thời gian nhỏ nhất để bạn bấm dãy số điện thoại, sau khi đã thay đổi vị trí các phím số một cách hợp lý