Trong M dòng tiếp theo, mỗi dòng ghi N số 0 hoặc 1 tương ứng với giá trị của các ô lướiCác số cách nhau ít nhất một khoảng trắngDữ liệu ra: Ghi ra file văn bản LUOI.OUT gồm 1 số nguyên:
Trang 2TRƯỜNG THPT CHUYÊN LÊ HỒNG PHONG – TP HỒ CHÍ MINH
Bài 1: Dự tiệc (MS0001)
Ông An đến dự một buổi tiệc Buổi tiệc đã có N người (0<N<50000) Mỗi người dự tiệc đều được cài lên áo một bông hoa trong đó có ghi một số nguyên dương X bất kì (X≤ 106) cho biết người khách đó sẽ dự tiệc tại phòng có chỉ số X Hầu hết trong phòng đều có số lượng khách là
số chẵn, duy nhất chỉ có một phòng có số lượng khách là số lẻ Để đảm bảo đủ cặp cho việc khiêu vũ nên ban tổ chức cần tìm ra số hiệu của phòng khách có số lượng khách là số lẻ để ghi sốcho ông An
Yêu cầu: Cho trước một danh sách khách dự tiệc cùng với các số trên áo của họ, hãy giúp
ban tổ chức tìm ra số hiệu của phòng khách có số lượng khách là số lẻ
Dự liệu vào: cho một file văn bản DUTIEC.INP gồm:
Dòng đầu tiên ghi một số N cho biết số khách của buổi tiệc khi ông An đến
Trong N dòng tiếp theo, mỗi dòng ghi một số nguyên dương cho biết con số ghi trên áo của người khách thứ i
Dữ liệu ra: Cho file văn bản DUTIEC.OUT gồm 1 số nguyên dương duy nhất đó là số hiệu
phòng có số khách là số lẻ
Ví dụ
DUTIEC.INP DUTIEC.OUP
512231
3
Bài 2: Lưới (MS0002)
Cho một lưới ô vuông gồm M dòng N cột Trong mỗi ô của lưới chỉ chứa số 0 hoặc 1, mỗi ô vuông ở dòng x cột y kí hiệu là (x,y) Từ một ô vuông có thể di chuyển sang ô vuông chung cạnh Một vùng là tập hợp các ô vuông kề cạnh với nhau và có giá trị bằng nhau Các ô kề cạnh với vùng và có giá trị khác nhau với giá trị các ô trong vùng thì không thuộc vùng Cho trước hia
ô vuông (x1,y1) và (x2,y2) Hãy cho biết hai ô vuông đã cho có cùng thuộc 1 vùng hay không, trong trường hợp hai ô vuông này không cùng thuộc một vùng hãy kiểm tra xem di chuyển từ ô (x1,y1) sang ô (x2,y2) có phải đi qua đúng một vùng trung gian hay không (Nếu đi qua đúng mộtvùng trung gian thì gọi là hai ô cách một vùng)
Ví dụ: Hình bên dưới là ô vuông 4x6, hai ô (3,4) và (1,2) là thuộc một vùng, hai ô (2,3) và
Dữ liệu vào: Cho trong file văn bản LUOI.INP
Dòng đầu tiên ghi các số M, N, x1, y1, x2, y2 (1≤ x1, x2 ≤M≤100; 1≤y1, y2,≤N≤100)
Trang 3Trong M dòng tiếp theo, mỗi dòng ghi N số 0 hoặc 1 tương ứng với giá trị của các ô lướiCác số cách nhau ít nhất một khoảng trắng
Dữ liệu ra: Ghi ra file văn bản LUOI.OUT gồm 1 số nguyên:
Nếu hai ô (x1,y1) và (x2,y2) cùng thuộc một vùng thì ghi số 1
Nếu hai ô (x1,y1) và (x2,y2) cách một vùng thì ghi số 2
số lượng các bé trai bằng số lượng các bé gái để hướng dẫn kĩ thuật khiêu vũ
Hỏi có bao nhiêu cách chọn thỏa mãn yêu cầu của giáo viên?
Dữ liệu vào: Cho trong file văn bản LOPHOC.INP
Dòng đầu tiên ghi số nguyên N (1≤N≤106)
Dòng thứ hai ghi mô tả các học viên đứng trong hàng: Một chuỗi gồm N chữ cái A (hoặc a) tương ứng với sô bé gái và B (hoặc b) tương ứng với số bé trai
Dữ liệu ra: Ghi ra file văn bản LOPHOC.OUT
Ghi một số nguyên duy nhất cho biết cách thỏa mãn của đề bài
Ví dụ:
LOPHOC.INP LOPHOC.OUT
8Abbabab
13
Trang 4TRƯỜNG THPT CHUYÊN QUỐC HỌC HUẾ Bài 1: Nối xích (MS0004)
Người ta có N đoạn xích (N≤20000) mỗi đoạn dây xích là một chuỗi các mắt xích nối với nhau Các đoạn dây xích tách rời nhau Mỗi đoạn xích không quá 20000 mắt xích
Bằng cách cắt ra một mắt xích sau đó gắn lại, ta có thể nối hai dây xích thành một đoạn Thờigian để cắt và hàn một dây xích là 1 đơn vị thời gian và được xem là bằng nhau với mọi mắt xíchNhiệm vụ của bạn là phải nối chúng lại thành một đoạn dây xích duy nhất với thời gian ít nhất (hay số mắt xích bị cắt và hàn lại là ít nhất)
Dữ liệu vào: Cho trong file NOIXICH.INP có cấu trúc như sau:
Dòng đầu tiên là N, số đoạn xích
Dòng tiếp theo ghi N số nguyên dương, số thứ i là số mắt xích có trong đoạn thứ i (1≤i≤N)Hai số cạnh nhau trên một dòng cách nhau ít nhất một khoảng trắng
Dữ liệu ra: Chương trình cần đưa ra file NOIXICH.OUT một số duy nhất là số đơn vị thời
gian mà bạn cần để nối N đoạn xích đó
Bài 2: Biến đổi xâu (MS0005)
Với một xâu kí tự cho trước, ta có thể thực hiện các phép biến đổi sau:
D(i) xóa 1 kí tự tại vị trí i của xâu S
I(c,i) chèn kí tự c vào sau kí tự thứ i của xâu S
R(i,c) thay kí tự tại vị trí i trong xâu S bởi kí tự C
Giả sử X và Y là hai xâu kí tự Độ dài xâu X là m, độ dài xâu Y là n hãy tìm một dãy gồm ít nhất các phép biến đổi xâu X thành xâu Y sao cho các phép biến đổi là ít nhất Số phép biến đổi
đó gọi là khoảng cách giữa hai xâu
Dữ liệu vào ghi trong file XAU.INP gồm 2 dòng
Dòng thứ nhất chứa xâu X
Dòng thứ nhất chứa xâu Y
Kết quả ghi trong file XAU.OUT gồm
Dòng đầu tiên ghi số k là khoảng cách giữa hai xâu
K dòng tiếp theo mỗi dòng ghi kí hiệu mỗi phép biến đổi theo trình tự thực hiện biến đổi
từ X thành Y
Ví dụ:
ERTRTIUITIUHJ
6I(J,8)
Trang 5Bài 3: Cắm hoa thẩm mỹ (MS0006)
Người ta muốn cắm một số loại hoa vào các lọ, có F loại hoa và V lọ hoa (F≤V), các lọ hoa được đánh dấu từ 1 đến V theo thứ tự từ trái qua phải, mỗi loại hoa được đánh số từ 1 đến F Người ta bắt đầu cắm hoa theo qui tắc sau: Nếu loại hoa i được cắm vào lọ hoa Vi, loại hoa j được cắm vào lọ Vj, với i<j thì Vi<Vj
Nếu loại hoa i được cắm vào lọ hoa j thì điểm thẩm mỹ được tính Aij(1≤i≤F, 1≤j≤V)
F dòng tiếp theo, mỗi dòng ghi V số nguyên, như vậy số Aij ghi ở vị trí j dòng i+1
Dữ liệu ra: Ghi vào file CAMHOA.OUT có nội dung như sau:
Dòng đầu ghi tổng số điểm thẩm mỹ của cách xếp
Dòng 2 ghi lần lượt F số, số thứ K là lọ hoa đã xếp của loại hoa K
TRƯỜNG THPT CHUYÊN NGUYỄN BÌNH KHIÊM
QUẢNG NAM Bài 1: Điền số (MS0007)
Một dãy số được gọi là cấp số cộng nếu từ số hạng thứ 2 trở đi bằng số hạng liền trước cộng với 1 số không đổi là d, d gọi là công khai của cấp số cộng
Viết chương trình đọc từ tệp MP.INP số nguyên n (với n lẻ và 100>n>2) Tạo một cấp số cộng n*n số hạng, với số hạng đầu b[1] được sinh ngẫu nhiên (|b[1]|≤100) và d được sinh ngẫu nhiên (|d|≤100) Sau đó điền n*n số hạng đó vào ma trận vuông kích thước n*n sao cho tổng các
số theo hàng, tổng các số theo cột và tổng hai đường chéo chính bằng nhau, kết quả ghi vào tệp MP.OUT
Dữ liệu vào: Trong file văn bản MP.INP gồm 1 số nguyên dương n
Dữ liệu ra: Kết quả ghi vào file văn bản MP.OUT có cấu trúc như sau:
Trang 6 Dòng đầu tiên ghi hai số b[1] và b cách nhau ít nhất một kí tự trắng
N dòng tiếp theo ghi ma trận n*n
Bài 2: Biểu thức ngoặc (MS0008)
Một cụm trong một biểu thức toán học là đoạn nằm giữa hai dấu đóng và dấu mở ngoặc đơn Với mỗi biểu thức cho trước hãy tách các cụm của biểu thức đó
Dữ liệu vào: Tệp văn bản NGOAC.INP chứa một dòng kiểu xâu kí tự là biểu thức cần xử lý
Dữ liệu ra: Tệp văn bản NGOAC.OUT dòng đầu tiên ghi d là số lượng cụm Tiếp đến là d
dòng, mỗi dòng ghi một cụm được tách từ biểu thức
Trong trường hợp gặp lỗi cú pháp ghi -1
Ví dụ:
a*(x+1)*((b+2)/(y-3)) 4
(x+1)(b+2)(y-3)((b+2)/(y-3))
TRƯỜNG THPT CHUYÊN LÊ QUÝ ĐÔN – NINH THUẬN Bài 1: (MS0009)
Hãy liệt kê tất cả các cách điền phép toán (cộng, trừ, nhân, chia) vào giữa các số A, B, C, D,
E để có biểu thức A(phép toán) B(phép toán)A(phép toán) D(phép toán) E = F (thứ tự ưu tiên
như trong toán học)
Các số A, B, C, D, E, F được cho bởi file PT.INP viết liên tiếp nhau cách nhau 1 dấu cách Kết quả đưa ra file PT.OUT, mỗi dòng của một file liệt kê một biểu thức tương ứng với một cáchđiền, nếu không tìm được cách điền nào thì hiện thị câu: Khong co cach dien
Trang 7Dữ 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:
121322123331329
TRƯỜNG THPT CHUYÊN TRẦN HƯNG ĐẠO – BÌNH THUẬN Bài 1: Các chữ số 1 (MS0012)
Cho số nguyên n không chia hết cho 2 hoặc không chia hết cho 5 Ta xét bội số của n là một
số bao gồm toàn số 1 Hỏi bội nhỏ nhất của n bao gồm các chữ số 1 có bao nhiêu chữ số
Biết rằng luôn tồn tại 1 bội số của n theo yêu cầu của bài toán
Yêu cầu: Hãy lập trình giải bài toán trên với n thỏa 2<n<10000
Dữ liệu vào: File văn bản NUMBER1.INP
Dòng đầu tiên chứa số k chỉ số lượng các số n
K dòng tiếp theo mỗi dòng chứa một số n
Trang 8Kết quả: Ghi ra file NUMBER1.OUT
Gồm k dòng, mỗi dòng thứ i là số lượng các chữ số 1 trong bội số nhỏ nhất của số ở dòng thứi+1 trong file NUMBER1.INP
Ví dụ:
NUMBER1.INP NUMBER1.OUT
3379
369
Yêu cầu: Hãy lập trình giải mã các thông điệp của ban tổ chức hội thi Biết rằng thông điệp
của ban tổ chức bao gồm nhiều dòng, mỗi dòng không chứa quá 255 kí tự và trong mỗi thông điệp đều có chứa cụm từ khác bên cạnh nó có ít nhất một khoảng trắng
Dữ liệu: Thông điệp đã được mã hóa từ file DECRYPT.INP
Dòng đầu chứa số n chỉ số dòng của thông điệp được mã hóa
N dòng tiếp theo là thông điệp của ban tổ chức kì thi
Kết quả: Xuất thông điệp đã giải mã ra file DECRYCT.OUT, các kí tự được đổi thành kí tự
in hoa tương ứng bao gồm n dòng đã giải mã Nếu không giải mã được thì xuất ra thông điệp:
“TOI KHONG THE GIAI MA THONG DIEP NAY”
Ví dụ:
2
QIPOH HEUSI divd dbd fn mbn cbj
upu uspoh iz uij ITH 2008-2009
PHONG GDTRH CHUC CAC EMLAM BAI TOT TRONG KI THI HSG 2008-2009
TRƯỜNG THPT CHUYÊN NGUYỄN DU – ĐĂK LĂK Bài 1: (MS0014)
Bạn An thực hiện một mã hóa đơn giản như sau: Đổi toàn bộ chuỗi thành chữ cái in hoa, sau
đó với mỗi kí tự chữ cái trong chuỗi mã hóa thành kí tự kế tiếp nó trong bảng chữ cái La Tinh, trong trường hợp nếu kí tự kà Z thì mã hóa nó thành A, mỗi lượt áp dụng phép mã hóa trên tất cảcác kí tự trong chuỗi sẽ cho ra một chuỗi mới, việc mã hóa được làm liên tiếp K lượt, với K khá lớn An nghĩ từ chuỗi kết quả khó tìm lại được chuỗi ban đầu
Yêu cầu: cho biết K và chuỗi kết quả mã hóa Hãy giúp bạn An tìm lại chuỗi ban đầu
Trang 9Dữ liệu vào: Chuỗi CH.INP có dòng đầu là K (0<K<1099) dòng thứ 2 là chuỗi mã hóa có độdài chuỗi <125 kí tự
Kết quả ra: File CH.OUT gồm một dòng ghi chuỗi ban đầu
Bài 2: (MS0015)
Cho 2 dãy số: A có n phần tử, B có m phần tử, các phần tử là các số nguyên x
Tính số lượng giá trị trong A mà có mặt trong B
Yêu cầu: viết ra số lượng tìm được
Dữ liệu vào: File AB.INP có dòng đầu là hai số n và m
Từ dòng thứ 2 lần lượt là n số của dãy A và m số của dãy B
ít nhất
Yêu cầu phải tìm ra m là tổng độ dài các quảng đường phải rải nhựa
Dữ liệu vào: File DD.INP có dòng đầu là n, X (0<n≤500, 0<X≤N) n dòng kế tiếp mỗi dòng
ghi 3 số a, b, c cho biết khoảng cách từ điểm a đến điểm b là c (0<c<32000) Dữ liệu luôn đảm bảo có đường đi từ điểm khác về điểm X đã chọn
Kết quả ra: file DD.OUT gồm 1 số m
P AB.OU T DD.INP DD.OUT
Trang 10 Aj+Aj+1+…+An+A1>0
Aj+Aj+1+…+An+A1+A2+…+Aj-2>0
Aj+Aj+1+…+An+A1+A2+…+Aj-2+Aj-1>0
Yêu cầu: Hãy đếm số vị trí tốt
Dữ liệu vào: Từ file BAI1.INP bao gồm
Dòng đầu tiên chứa số nguyên N
Dòng thứ 2 chứa dãy số A1,A2,…,An
Kết quả ra: ghi trong file BAI1.OUT bao gồm
Yêu cầu: Từ một tam giác như trên hãy đếm tất cả các tam giác đồng dạng với tam giác đã cho
Dữ liệu vào: File văn bản TAMGIAC.INP có cấu trúc như sau:
Gồm 3 dòng, mỗi dòng là tọa độ của một đỉnh
Dữ liệu ra: Lưu vào file văn bản TAMGIAC.OUT là số tam giác tìm được
Bài toán: Cho bảng hình chữ nhật như trên hãy tìm thành phần liên thông giáp biên lớn nhất
Dữ liệu vào: từ file văn bản CHUNHAT.INP có cấu trúc như sau:
Dòng đầu tiên là hai số m và n
M dòng và n cột tiếp theo ghi giá trị mỗi ô
Dữ liệu ra: Trong file văn bản CHUNHAT.OUT
Dòng đầu ghi tổng số ô, nếu không có thì ghi 0
Dòng tiếp theo ghi tọa độ các ô trong thành phần liên thông giáp biên lớn nhất
Ví dụ
Trang 11TAMGIAC.INP TAMGIAC.OUT CHUNHAT.INP CHUNHAT.OUT
TRƯỜNG THPT CHUYÊN NGUYỄN ĐÌNH CHIỂU – ĐỒNG THÁP
Bài 1: (MS0020)
Cho lưới ô vuông gồm m dòng n cột chứa các số 0 và 1, mỗi ô vuông ở dòng x cột y kí hiệu là(x,y) Từ một ô vuông có thể di chuyển sang ô vuông chung cạnh Một vùng là tập hợp các ôvuông kề cạnh với nhau và có giá trị bằng nhau
Cho trước 2 ô vuông (x1,y1) và (x2,y2) hãy cho biết 2 ô vuông đã cho có cùng thuộc một vùnghay không Trong trường hợp hai ô vuồng này không cùng thuộc một vùng hãy kiểm tra xem nếu
di chuyển từ (x1,y1) đến ô (x2,y2) có phải đi qua đúng một vùng trung gian hay không (gọi làhai ô cách một vùng)?
Ví dụ: hình bên dưới là một ô vuông 4x6, hai ô (1,2) và (3,4) là thuộc cùng một vùng, còn 2 ô(2,3) và (1,6) là cách một vùng
Dữ liệu vào: cho từ file văn bản LUOI.INP bao gồm
Dòng đầu ghi các số m, n, x1, x2, y1, y2 (1,x1,x2,y1,y2≤m,n≤250)
Dòng i trong mỗi dòng tiếp theo mỗi dòng ghi n số 0 hoặc 1 tương ứng với giá trị các dòng i củalưới
Dữ liệu ra: Ghi vào file văn bản LUOI.OUT gồm một số nguyên:
Nếu 2 ô (x1,y1) và (x2,y2) thuộc cùng một vùng thì ghi số 1
Nếu 2 ô (x1,y1) và (x2,y2) cách một vùng thì ghi số 2
Trang 12TRƯỜNG THPT THỊ XÃ CAO LÃNH – ĐỒNG THÁP Bài 1: Chuỗi con tăng dài nhất (MS0021)
Một chuỗi được gọi là tăng nếu không có ít hơn một kí tự, các kí tự trong chuỗi là khác nhau vàđược sắp xếp theo thứ tự tăng của mã ASCII
Viết chương trình tìm chuỗi con tăng dài nhất từ một chuỗi S cho trước có độ dài n (1≤n≤20000).Chuỗi con của S là chuỗi gồm một số kí tự trong S có độ dài ≤S và thứ tự các kí tự không thayđổi
Dữ liệu vào: Được cho trong tập tin văn bản CHUOI.INP gồm 2 dòng:
Dòng đầu ghi giá trị n
Dòng 2 gồm n kí tự liên tiếp gồm các kí tự từ ‘0’ đến ‘z’
Dữ liệu ra: Ghi vào file văn bản CHUOI.OUT gồm 2 dòng
Dòng đầu ghi độ dài dài nhất của chuỗi con tăng
Dòng sau ghi chuỗi con tăng dài nhất của S
Ví dụ:
18abdfde13jlahgalkjl
7abdfjkl
TRƯỜNG THPT CHUYÊN LÊ QUÝ ĐÔN – BÀ RỊA VŨNG TÀU
Bài 1: Dãy hình chữ V (MS0022)
Một dãy số b1,b2,…,bi-1,bi,bi+1,…,bn được gọi là dãy hình chữ V khi dãy đó thỏa mãn: b1>b2>…
>bi-1>bi<bi+1<…<bn (Với i=1,2,3…,n)
Yêu cầu: cho một dãy số nguyên a1,a2,…,an hãy cho biết dãy con dài nhất hình chữ V của nó baonhiêu phân tử
Dữ liệu vào: Từ file ROWV.INP
Dòng đầu tiên ghi số nguyên dương n
Dòng i là giá trị của ai (|ai|≤109/i=1,2, ,n)
Dữ liệu ra: Ghi vào file ROWN.OUT số lượng phần tử của dãy con hình chữ V dài nhất tìm
được
Bài 2: Hugo (MS0023)
Gia đình Hugo bị nhốt vào một căn phòng bí mật của mụ phù thủy Scyla Một đêm nọ, nhân cơhội mụ phù thủy ngủ say, gia đình Hugo đã tìm cách thoát khỏi căn phòng đó nhưng trước mặtanh là một mê cung Hugo đã lấy được bản đồ mê cung, mê cung này có thể mô tả thành n địađiểm (được đánh số từ 1 đến n), giữa hai điểm của mê cung có thể có đường đi bộ trực tiếp hoặcphải vượt sông hoặc không thể đi qua được Việc vượt sông là rất nguy hiểm vì bản đồ có ghichú dưới sông có thể có cá sấu Giả thiêt rằng Hugo ban đầu ở điểm 1 và điểm cần đến là n Hãycho biết tổng độ dài đường bộ mà Hugo phải đi ngắn nhất là bao nhiêu sao cho số lần vượt sông
là ngắn nhất
Dữ liệu vào: từ file HUGO.INP
Trang 13Dòng đầu tiên ghi số nguyên dương N (N≤100)
Tiếp đến là một số dòng, mỗi dòng ghi 3 số x, y, z (0≤z≤100)
Nếu z=0 thì giữa điểm x và y có sông
Nếu z<>0 thì cho biết độ dài đường bộ qua lại trực tiếp giữa x và y là z
Kết quả: Ghi vào file HUGO.OUT gồm tổng độ dài đường bộ mà Hugo phải đi và số lần Hugo
phải vượt sông thỏa mãn yêu cầu (mỗi số ghi trên 1 dòng) Nếu không có đường đi ghi -1
862594748
TRƯỜNG THPT CHUYÊN LÝ TỰ TRỌNG – CẦN THƠ Bài 1: Dán tem ít nhất (MS0024)
Một bưu điện có N lọai tem đánh số từ 1 đến N với giá trị tương ứng G[1], G[2],…,G[n] Mộtngười cần dán đúng S tiến tem
Yêu cầu: hãy chọn cho người đó một cách mua ít tem nhất
Dữ liệu vào: Được cho bởi file văn bản POST.INP trong đó dòng thứ nhất chứa 2 số nguyên
dương N,S (N≤20,S≤1000) Trong N dòng tiếp theo, dòng thứ i ghi số G[i] (G[i]≤1000) Biếtrằng ta luôn có thể chọn được các con tem có giá trị bằng S
Dữ liệu ra: Ghi vào file văn bản POST.OUT gồm N dòng, dòng thứ i ghi số con tem i cần mua
Ví dụ:
POST.INP POST.OUT
3 3441210
021
Bài 2: Đẳng cấu (MS0025)