You are on page 1of 5

Bài 1: Tìm số nguyên tố

Cho hai số nguyên 𝑛, 𝑚. Viết chương trình tìm các số nguyên tố không
vượt quá 𝑛 sao cho tổng các chữ số của mỗi số đều bằng 𝑚.
Dữ liệu vào từ file: TIMSNT.INP
- Dòng duy nhất ghi 2 số nguyên 𝑛 và 𝑚 (0 < 𝑛, 𝑚 ≤ 106), cách nhau
một khoảng trắng.
Kết quả ra file: TIMSNT.OUT
- Dòng đầu tiên ghi số lượng các số nguyên tố tìm được
- Dòng thứ hai ghi các số nguyên tố thỏa mãn yêu cầu, mỗi số cách nhau
một khoảng trắng.
Ví dụ:
TIMSNT.INP TIMSNT.OUT
50 5 3
5 23 41
1000 18 0
Bài 2: Xây dựng dãy số
Cho dãy số nguyên B=(b1, b2, …, bn-1,bn), hãy thực hiện xây dựng dãy số nguyên
A=(a1, a2,…,an) sao cho với mọi i: 1<=i<=n trung bình cộng của I phần tử đầu tiên
trong dãy A bằng đúng b:
A1+a2+a3+…+ai = bi với mọi i=1,2,…,n
i
DL vào: File AVR.INP
- Dòng 1 chứa số nguyên dương n(n<=10)
- Dòng 2 chứa n số nguyên b1,b2,…bn (với moi |bi|<=109)
DL ra: file AVR.OUT gồm n số a1,a2,…,an theo đúng thứ tự
Ví dụ:
AVR.INP AVR.OUT
5 13268
12234
Bài 3: Chi phí tính tổng
Như đã biết thời gian để thực hiện việc tính tổng của 2 số nguyên dương trên máy tính
là phụ thuộc vào độ lớn của chúng. Để đơn giản ta coi rằng cộng hai số nguyên dương
a và b phải trả chi phí cho thời gian có giá trị bằng 5 % tổng giá trị a+b. Giả sử cần tính
tổng của N số nguyên dương cho trước, dễ thấy có nhiều cách tổ chức thực hiện công
việc tính toán này, mỗi cách đòi hỏi chi phí thời gian nhất định. Chẳng hạn, cần tính
tổng các số 10, 11, 12, 13. Ta có thể thực hiện lần lượt 10+11 (chi phí 1.05), kết quả
thu được cộng với 12 (chi phí 1.65), kết quả thu được cộng với 13(chi phí 2.3). Như
vậy tổng chi phí là 5. Hoặc cách khác cộng 10+11 (chi phí 1.05 ) và 12+13 (chi phí
1.25), cộng 2 kết quả trên (chi phí 2.3), tổng chi phí là 4.6
Cho dãy gồm N số nguyên dương. Cần tìm cách tính tổng của các số này với tổng chi
phí thời gian là nhỏ nhất.
DL vào: File SUMMIN.INP
- Dòng đầu tiên chứa số nguyên dương N (2<=N<=15000)
- Dòng thứ hai ghi N số nguyên dương, các số cách nhau bởi 1 dấu cách
DL ra: File SUMMIN.OUT ghi tổng chi phí thời gian thực hiện nhỏ nhất theo cách
tính tổng tìm được. Kết quả lấy 2 chữ số thập phân
Ví dụ:
SUMMIN.INP SUMMIN.OUT
4 4.60
10 11 12 13 14
2 0.15
12
Bài 4: Đoạn con
Cho dãy A gồm N số nguyên dương (0 < N <103). Một đoạn con của dãy A,
kí hiệu A[i..j] là dãy gồm các phần tử đứng liên tiếp nhau trong dãy A, tính cả phần
tử Ai đến phần tử Aj (1<= i <= j <= N). Hãy tìm đoạn con dài nhất gồm các phần
tử đôi một khác nhau.
Dữ liệu vào từ file: DOANCON.INP
- Dòng đầu tiên chứa số N.
- Dòng thứ hai chứa N số nguyên dương, các số cách nhau một khoảng
trắng.
Kết quả ra file: DOANCON.OUT
- Dòng đầu tiên ghi chỉ số đầu tiên của đoạn dài nhất tìm được trong dãy A.
Dòng thứ hai ghi số phần tử của doạn dài nhất tìm được.
Ví dụ:
DOANCON.INP DOANCON.OUT Giải thích
10 3 Tính từ phần tử thứ 3 có 8 số
5241532769 8 đôi một khác nhau là:
41532769
Bài 5. Xâu đơn điệu
Một xâu S khác rỗng chỉ gồm các chữ cái Latin in hoa được gọi là
một xâu đơn điệu nếu S chỉ gồm một chữ cái, hoặc S có chữ cái thứ nhất
bé hơn chữ cái thứ hai và chữ cái thứ hai lớn hơn chữ cái thứ ba, chữ cái
thứ ba bé hơn chữ cái thứ tư, chữ cái thứ tư lớn hơn chữ cái thứ năm, …
theo thứ tự từ điển: ‘A’< ‘B’ < … < ‘Z’.
Một xâu con của S là xâu thu được khi bỏ đi một số chữ cái trong S
và giữ nguyênthứ tự các chữ cái còn lại. Trường hợp xâu “AAA” thì xâu
“AA” gồm chữ cái thứ nhất vàthứ hai, “AA” gồm chữ cái thứ nhất và thứ
ba là hai xâu con khác nhau.
Cho xâu T chỉ gồm các chữ cái Latin in hoa, hãy tìm số lượng xâu con
đơn điệu của T?
Ví dụ: với T = “COM” ta có 7 xâu con khác rỗng của T: C, O, M, CO,
CM, OM, COM.Trong đó có 6 xâu con đơn điệu, trừ xâu “OM” do ‘O’
> ‘M’.
Dữ liệu: Vào từ tệp văn bản ALTER.INP gồm một dòng ghi xâu T.
Kết quả: Đưa ra tệp văn bản ALTER.OUT gồm một dòng ghi số lượng
xâu con đơn điệu của T, bởi số lượng xâu con như vậy là rất lớn nên chỉ
đưa ra phần dư của kết quả khi chia cho 1000000007.
Ví dụ:
ALTER.INP ALTER.OUT
COM 6
Ràng buộc:
- Có 10% số test tương ứng với 10% số điểm có độ dài xâu T ≤ 20
- Có 40% số test tương ứng với 40% số điểm có độ dài xâu T ≤ 1000
- Có 50% số số test còn lại tương ứng với 50% số điểm có độ dài xâu T ≤
1000000.
Bài 6: SIÊU MÃ
Siêu mã là một loại mã có nhiều ứng dụng quan trọng trong lĩnh vực mã hóa và truyền tin. Trong
bài này, ta xét bài toán đơn giản sau đây về siêu mã. Cho u và v là hai xâu kí tự khác rỗng có độ
dài hữu hạn. Xâu u được gọi là xâu con của xâu v nếu u có thể nhận được từ v bằng cách xóa bớt
ít nhất một kí tự trong v. Một tập X các xâu khác rỗng có độ dài hữu hạn được gọi là siêu mã nếu
mọi cặp u, v bất kỳ thuộc X, u không là xâu con của v và v không là xâu con của u.
Cho trước một tập X = {x1, x2, ..., xN} gồm N xâu khác rỗng, mỗi kí tự trong xâu là 0 hoặc 1.
Hãy kiểm tra xem X có là một siêu mã hay không?
Dữ liệu: vào từ file văn bản HCODE.INP có định dạng như sau:
• Dòng đầu tiên chứa số nguyên dương N (N ≤ 500);
• Dòng thứ i trong N dòng tiếp theo ghi xâu xi của tập X, độ dài của xâu xi không quá 15, với i
=1, 2, ..., N
Kết quả: ghi ra file văn bản HCODE.OUT có định dạng như sau:
• Nếu X là siêu mã thì ghi số 1;
• Nếu X không là siêu mã thì dòng đầu tiên ghi số 0, dòng thứ hai ghi chỉ số i nhỏ
nhất mà hoặc xi là xâu con của xj hoặc xj là xâu con của xi, với xi, xj thuộc X, 1 ≤
i < j ≤ N.
Ví dụ:
HCODE.INP
5
1111
100101
01011
000
0001000
HCODE.OUT
0
2
HCODE.INP
3
010
1000
11
HCODE.OUT
1

You might also like