Tải bản đầy đủ (.doc) (24 trang)

tài liệu hsg tin hoc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (337.62 KB, 24 trang )

Bài 1: Tệp ‘sn.inp’ gồm 1 dãy sô nguyên, mỗi số
cách nhau bằng 1 dấu cách, mỗi số có giá trị tuyệt
đối không vượt quá 1000. Viết chương trình kiểm
tra xem trong dãy đó số nào là số nguyên tố và đưa
kết quả ra tệp ‘so.out’
VD: Tệp ‘so.inp’:
1 9 7 3 -6

Tệp ‘so.out’:

73

Bài 2: Tính tổng các chữ số của số nguyên:
- tệp b2.inp chứa một dãy số nguyên dương (không quá 50
số), mỗi số phân cách nhau bởi 1 kí tự cách,giá trị mỗi số
không vượt quá 60000
- Tệp b2.out chứa tống các chữ của mỗi số nguyên trong
dãy
1200 35000 7289
VD:
3 8 26

Bài 3: Tìm ưcln của 2 sô nguyên nhập từ bàn phím
- tệp b3.inp chứa 2 số nguyên trên cùng một dòng
- tệp b3.out chứa ucln
Bài 4: Viết ct kiểm tra xem 2 sô nguyên có phải là là số nguyên tố cùng nhau
hay không. ( 2 số nguyên được gọi là nt cùng nhau nếu có ucln =1)
- Tệp ‘b4.inp’ gồm 2 sô nguyên, tệp ‘b4.out’ chứa kết quả: nếu là snt
cùng nhau thì ghi là “dung”, nếu không phải thi ghi là “sai”



VD: b4.inp:

B4.out:

29

dung

Bai 5: Nhp dãy số thực a, tinh tổng a1 - a2+a3-a4+...an
Dữ liệu vào từ Tep.inp gồm 2 dòng:
- Dòng 1 chứa số nguyên n
- Dòng 2 là dãy số thực gồm n số hạng.
Dữ liệu ra là Tệp.out là giá trị tổng.
Bi 6: Tỡm UCLN ca n s nguyờn dng:
- Tp b6.inp gm 2 dũng: Dũng u tiờn cha s nguyờn dng n, dũng th
2 cha n s nguyờn dng
- Tp b6.out cha 1 s nguyờn l UCLN ca n s nguyờn t tp b6.inp
Bi 7: Tỡm xem trong cỏc sụ nguyờn t 1 n n cú bao nhiờu s hon thin
(s hon thin l s nguyờn dng cú tng cỏc c s nguyờn dng bộ hn
nú bng chớnh nú)
- tp b7.inp cha s nguyờn dng n
- tp b7.out cha tt c cỏc s hon thin tỡm c trờn cựng mt dũng
Bi 8: cho 2 phan so a/b va c/d. hay xac dinh 2 so nguyen duong e va f thoa
man e/f=a*c/(b*d) (e/f la phan so da toi gian).
D liu vo l tp nhan.inp: Dũng 1 cha 2 s a v b, dũng 2 cha 2 s c v
d (a, b, c, d l cỏc s nguyờn dng khụng ln hn 10000
D liu ra l tp nhõn.out cha 2 s e v f trờn cựng mt dũng
Bai 9: Cho một xâu s đếm xem trong xâu có mấy từ (từ là
một dãy các ký tự liên tiếp không cha dấu cách) dl vào tù file
văn bản demtu.inp gồm một xau ky tu không quá 255 kí tụ,

kết quả ghi ra file demtu.out là một số nguyên dơng.
Bai 10: Xâu đảo
Dữ liêu vào từ file văn bản xaudao.inp chứa một xâu st
Kết quả ghi ra file vb xaudao.out xâu đảo ngợc của st
Bai 11. Viết chơng trình đọc từ tệp b11.inp xâu ký tự S và
thông báo ra tệp f2.out số lần xuất hiện của mỗi chữ cái
tiếng Anh trong S (Không phân biệt chữ hoa, chữ thờng)
VD:
B11.inp
B11.out
baB
Trong xau co 1 chu A
Trong xau co 2 chu B


Bài 12: Cho mảng 2 chiều m hàng, n cột (m,n<=50). Hãy điền các số nguyên
dương từ 1 đến m*n vào mảng 2 chiều sao cho mảng được sắp thứ tự theo
hình vẽ: (ví dụ m=3, n=4) thì mảng có dạng sau:
1234
8765
9 10 11 12
Tệp b12.inp gồm 2 số nguyên dương m và n trên cùng một dòng
Tệp b12.out là các giá trị của mảng
B12.inp
B12.out
34
1234
8765
9 10 11 12
Bài 13: cho số nguyên dương N (2

phần tử nguyên dương(a[i] <= 10000), các a[i] được sinh ngẫu nhiên. Cho
biết dãy trên có bao nhiêu phần tử khác nhau.
Tệp b13.inp chứa một số nguyên n
Tệp b13.out chứa dãy sô nguyên và kết luận về số phần tử khác nhau
VD:
B13.inp
B13.out
5
456 9870 2 23 2
So phan tu khac nhau la: 4
Bài 14: Cho m¶ng hai chiÒu cã kÝch thíc mxn (m, n<=20)
chøa c¸c s« nguyªn trong ph¹m vi integer viÕt ct lµm viÖc
sau
A, Kiem tra so nguyen to cua mang
B, Tim phan tu lon nhat cua tung dong
File songuyen.int nhu sau:
mn
a11 a12 ...........a1n
a21 a22 ...........a2n
.....................
am1..................amn
kÕt qu¶ xuÊt ra file v¨n b¶n songuyen.out
- ghi c¸c sè nguyªn tè cã trong m¶ng a tren 1 dong
- Ghi cac gia tri lon nhat tren dong thu 2
B14.inp
B14.out


34
5 10 6 4

4798
13 6 8 9

5 7 13
10 9 13

Bi 15: Tìm dãy con tăng dài nhất:
- Dữ liệu vào từ tệp M.inp:
+ Dong 1 chứa số nguyên n
+ Dòng 2 chứa n số nguyên.
- Dữ liệu ra tệp M.out
+ Dòng 1 chứa vị trí đầu tiên của dãy số tăng dài nhất và
độ dài dãy số
+ Dòng 2 là các giá trị của dãy số
inp
out
8
23
54673412
467
Hng dn:
Cho bin iu khin i duyt dóy s (mng), bin dmax lu di dóy
s, bin luui lu v trớ u tiờn ca dóy s cn tỡm
- ban õu gỏn dmax:=0; i:=1
- trong khi igỏn bin j:=I, kim tra nu dóy cũn tng thỡ tng j, t dmax:= j-i+1
nu dmaxBi 16: thi 2009-2010
Bi 17: 2010-2011
Bi 18: Giai tha ca mt s c cho bi cụng thc sau: n!=1*2**n

Cho s N (N<=2.109) nguyờn dng tớnh tng giai tha cỏc ch s ca nú.
- Tp b18.inp cha s nguyờn N
- Tp b18.out cha giỏ tr ca tng giai tha
VD:
B18.inp
B18.out
24
26
Trong bi cỏc em vit 1 hm tớnh giai tha ca s nguyờn dng N. S dng
hm ny tớnh tng cỏc ch s ca mt s.
Bi 19:
Cho s nguyờn dng N (N<=2.109). Hóy kim tra xem n cú l s thuc dóy
Fibinaci khụng? Nu cú thỡ l s bao nhiờu trong dóy?
Tp b19.inp cha s nguyờn n


Tệp b19.out:
- Nếu n không thoả mãn thì thông báo: NO
- Nếu thoả mãn thì thông báo YES và vị trí số đó trong dãy.
VD:
B19.inp
B19.out
4
no
B19.inp
2

B19.out
YES 3


Bài 20: Bài toán tìm các số siêu nguyên tố có n chữ số: (số siêu nguyên tố là số

nguyên tố mà khi bỏ 1 số tùy ý các chữ số bên phải của nó thì phần còn lại vẫn là 1
số nguyên tố
vd: 2333 là 1 số siêu nguyên tố có 4 chữ số vì 233, 23, 2 cũng là các số nguyên tố.)
- Tệp b20.inp chứa sô nguyên n (2<=n<=10)
- Tệp b20.out: + Dòng đầu tiên chứa dãy số siêu nguyên tố có n chữ số
+ Dòng thứ 2 là số lượng các số siêu nguyên tố
VD:
B20.inp
B20.out
2
23 29 31 37 53 59 71 73 79
So luong so sieu nguyen to: 9
Hướng dẫn:

Tạo các số siêu nguyên có i chữ số từ các số siêu nguyên tố có i-1 chữ số
Khởi tạo a mảng chứa các số nguyên tố có 1 chữ số
Gs: có đem so trong a
For i:=1 to N do
Begin
For j:=1 to dem do
{tạo mảng b số siêu nguyên tố có i chữ số dựa vào i-1)
For k:=0 to 9 do
Begin
x:=a[j]*10+k;
if x nguyên tố then
Nap vào b
End;
{mảng b chứa các số nguyên tố cần tìm}

a:=b;
End;
Bài 21: Kiểm tra 1 số nguyên dương có phải số siêu nguyên tố hay không?
Dữ liệu vào chứa số nguyên n
Dữ liệu ra: Nếu là số siêu nguyên tố thì kết luận ‘dung’, ngược lại thì kết
luận ‘sai’
Vd:


inp
24

out
sai

inp
23

inp
dung

Bi 22
Nhp mt dóy A cú N s t nhiờn (N<40), mi s khụng ln hn 1000 v 1
s K. Hóy xut ra cỏc phn t cú s ln xut hin trong dóy A t K ln tr
lờn ( Mi s ch xut 1 ln)
D liu nhp: file DAYSO.INP:
- Dũng 1:s K
- Dũng 2: Dóy A
Kt qu: file DAYSO.OUT: xut cỏc s tha iu kin trờn, trng hp
khụng cú s no tha thỡ xut s -1

VD:
inp
out
2
4 xuat hien 3 lan
46745946
6 xuat hien 2 lan
inp
4
46745946

out
-1

Bi 23: tìm dãy con có tổng các phần tử nhỏ nhất.
Input: chứa số nguyên n (n<100) và dãy số nguyên gồm n số
hạng (mỗi số có giá trị tuyệt đối <=1000)
Output: 2 dong: dong 1 là vi tri bắt đầu và kết thúc của dãy
con, dòng 2 là các phần tử của day con.
VD: inp
5
out:
2 3 -2 -4 7
34
-2 -4
Bi 24. Tìm đoạn dài nhất các phần tử liên tiếp nhau cùng
chia hết cho một số nguyên K
- Dữ liệu vào từ tệp m.inp: Dòng Đầu tiên chứa hai số
nguyên N, K (khác 1), dòng tiếp theo chứa N số nguyên.



- Dữ liệu ra là tệp M.out chứa số nguyên là độ dài đoạn dài nhất tìm đợc.
inp
out
82
3
1 9 2 4 3 8 10 6
Bai 25: Tim day con chung 2 day. Input la so nguyen
n(n<=100) va 2 day so co n chu so (mỗi sô có giá trị tuyệt
đối không vợt quá 1000, output la do dai day con dai nhat.
inp
5
67128
36715
out
3
..
Bi 26:
Dóy cỏc s t nhiờn c vit ra thnh mt dóy vụ hn trờn ng thng:
1234567891011121314.....
Hi s v trớ th k trong dóy trờn l s no?
- Tp inp cha s nguyờn k (0- Tp out gm 2 dũng: Dũng 1 cha dóy s, dũng 2 cha s cui cựng
ca dóy s
VD:
inp
out
12
123456789101
1

Hng dn: Dựng bin S m s lng cỏc s trong dóy, bin I
m cỏc s t nhiờn bt u t 1.
- Khi S cũn nh hn hoc bng K thỡ: gỏn cho bin S1=S, ng thi
tng s v tng I ( mi ln I tng thờm 1, nu i<10 thỡ s tng thờm 1,
nu 10<=i<=99 thỡ s tng 2,.), tng n khi s>k thỡ dng
- Chuyn s I thnh xõu v gỏn cho bin x
- Nu k = s1 thỡ s th k chớnh l (i-1) mod 10, nu s1gm n-s1 ký t ca xõu x, s th k l phn t th n-s1 ca xõu va
to)
Bai 27: Cho số nguyên dơng n (n<=1000)
Day số A1,A2,...Ai goi la day so dac biet neu no thoa man
cac dieu kien
- La day giam dan
- Voi moi Ai thi Ai hoac la so nguyen to hoac la uoc cua
mot trong cac so tu Ai+1 đến n


-

VD:
input
10

Input so nguyen n
Output: day dac biet dai nhat bat dau tu n
Output
754321

Bai 28: Cho 3 dãy số thực a1,.., an; b1,…, bn và c1,…, cn. Tìm dãy cực đại
các chỉ số j, j+1,…,j+k sao cho:

ajbjcjInput gồm dòng đầu tiên chứa giá trị n, 3 dòng sau là giá trị 3 dãy số
Output gồm dòng đầu tiên chứa giá trị j và độ dài của dãy thỏa mãn
Các dòng sau là giá trị của các dãy thỏa mãn
VD:
inp
Out
6
22
645168
45
978341
78
512456
12
Bai 29: cho 1 day so nguyen, dua ra day so nguyen moi sao
cho vi tri cac so trong moi so nguyen bi dao nguoc.
-inp: 1 dong la day so nguyen
- output: day so da bi dao
VD:
input
Output
10 34 56
01 43 65
Bài 30: Đề thi 2011-2012
Hướng dẫn bài 2: Nguyên tố ghép: Dùng biến D để đếm số lượng các số
nguyên tố ghép, biến I để đếm số lượng số nguyên tố trong dãy a (I là chỉ số
của mảng).

Kiểm tra các số nguyên tố bắt đầu từ số 2 và chuyển thành xâu, nếu I chia
hết cho 2 (từng cặp) thì chuyển xâu thành số, kiểm tra số đó có phải là
nguyên tố không, nếu đúng thì tăng d lên 1
- Lặp đến khi d=m
Bài 31:
T×m d·y con ®èi xøng dµi nhÊt cña mét d·y sè nguyªn. In
put gåm 2 dßng: Dßng 1 chøa sè nguyªn N, dßng 2 chøa N sè
nguyªn,


Output gồm 2 dòng: Dong 1 là vị trí bắt đầu của dãy đối
xứng v độ dài của dãy đx dòng 2 là các phần tử của dãy ĐX
VD:
inp
Out
6
33
552429
242
Bai 32: Tim xau con chung co do dai lon nhat cua 2 xau.
Input la 2 xau, output gom 2 dong, dong 1 la do dai cua xau,
dong 2 la xau con dai nhat (Neu khong co xau con chung thi
dua ra thong bao: Hai xau khong co xau con chung.
inp
67128
36715
out
3
671
..


Bi 33:
Vit chng trỡnh phõn tớch mt s ra lm cỏc tha s nguyờn t:
- tp input cha s nguyờn n (n<30000).
- Tp out l biu thc ó c phõn tớch
VD:
inp
Out
12
2*2*3
Vớ d: Phõn tớch 12=2*2*3. í tng: Thut toỏn phõn tớch mt s ra tha s nguyờn t
tng t nh thut toỏn kim tra s nguyờn t. im khỏc õy l khi kim tra s nguyờn
t ta phi ln lt kim tra cỏc s nh hn sqrt(n) (cn bc hai ca n) cú phi l c ca n
hay khụng, cũn khi phõn tớch ta ch vic chia n cho cỏc s nguyờn bt u t s nguyờn t
nh nht l 2. Khi khụng chia c na thỡ ta tng s chia lờn 1 n v, quỏ trỡnh phõn tớch
kt thỳc khi n bng 1.
VAR i,n :INTEGER;
BEGIN
Write ('Nhap n:');
Readln(n);
Write (n,'=');
i:=2;
REPEAT


WHILE n MOD i <> 0 DO
i:=i+1;
Write(i);
n:=n DIV i;
IF n > 1 THEN

write ('*');
UNTIL n = 1;
readln;
END.
Bài 34:
Hai số m,n gọi là bạn của nhau nếu tổng các ước nhỏ hơn m của m bằng n và ngược
lại.Tìm tất cả các số là bạn của nhau và nhỏ hơn k (k<=10001).
- Tệp inp chứa số nguyên k
- Tệp out chứa tất cả các cặp số là bạn của nhau

VD:
inp
300

Out
6 va 6
28 va 28
220 va 284
284 va 220
Ý tưởng: Thay vì chạy 2 vòng lặp để xét m và n, ta có thể chỉ cần chạy 1 vòng lặp kiểm
tra xem m và uoc(m) có là bạn của nhau không.

PROGRAM timban;
FUNCTION uoc(k:INTEGER):longint;
VAR i,tong:INTEGER;
BEGIN
tong:=0;
FOR i:=1 TO k DIV 2 DO
IF k MOD i =0 THEN tong:=tong+i;
uoc:=tong;

END;
VAR m:longint;
BEGIN
for m:= 1 to 10001 do
if uoc(uoc(m)) = m then writeln(m, ' va ', uoc(m),' la ban cua
nhau');
readln
END.
Bài 35
Kiểm tra 1 số có phải là số nguyên tố mạnh hay không. Số nguyên tố mạnh
là số lớn hơn trung bình cộng của số nguyên tố liền trước và số nguyên tố
liền sau nó.
- Tệp inp gồm nhiều dòng, dòng đầu tiên chứa sô nguyên n (n<=100),
n dòng tiếp theo mỗi dòng chứa 1 sô nguyên (0<=n<10000)
- Tệp out gồm n dòng, nếu là snt mạnh thì ghi true, ngược lại thì ghi
False

VD:
inp
2
11
7

Out
True
False

Bai 36: Tim vi tri cuoi cung cua xau s1 trong xau s2



Input: gồm 2 dòng: mỗi dong cha 1 xâu
Output: là vị trí cần tìm
inp
ab
12abc564ghabtrr
out
11
Bai 37: Tinh so lan lap cua xau s1 trong xau s2.
Input: gồm 2 dòng: mỗi dong chứa 1 xâu
Output: chứa số lần lặp.
inp
ab
12abc564ghabtrr
out
2
Bai 38: Dem so phan tu khac nhau cua xau.
Input: Chứa 1 xâu.
Output: chứa 1 số theo yêu cầu
inp
abcacb
out
3
Bi 39: Tam giác pascal:
Inp: số nguyên dơng n (n<=20)
Out: tam giác pascal gồm n+1 dòng
inp
2
out
1
11

121

Bi 40: o dóy s (de hsg 2006-2007)
Cho mt dóy s cú N s nguyờn, mi s cú tr tuyt i nh hn 2.000.000.000. Em hóy
a ra mt cỏch sp xp N s ú sao cho tng ln nht ca cỏc cp s cnh nhau l nh
nht.
D liu vo t tp vn bn DAODAY.INP
Dng u tiờn cha s nguyờn N ( 2 N 1000),
Dng th hai cha N s ca dúy s trong dúy ban u.
D liu ra a ra tp vn bn DAODAY.OUT
Cha duy nht mt s l tng ln nht ca cỏc cp s cnh nhau l nh nht
(sau khi ó sp xp)
Vớ d v d liu vo v d liu ra
DAODAY.INP

DAODAY.OUT

4

19


2 3 17 9
Giải thích: dãy sau khi đảo đạt yêu cầu là

17 2 3

9

Max (19, 5, 12)=19


2 cách khác có kết quả lớn hơn

2 17

3

9

Max (19, 20, 12)=20

2 3 17

9

Max (5, 20, 26)=26

Bài 41: Đề thi 2007-2008

Bài 42: Cho 2 dãy số nguyên a= (a1,a2,....a,n) và b=(b1,b2,...,bn). Dãy
c=(c1,c2,...,c2n) được xác định như sau:
- Ci= ak với i=2k-1, k=1,...,n
- Ci= bk với i=2k, k=1,...,n
Dữ liệu vào: Gồm 3 dòng: Dòng 1 chứa số nguyên n (2<=n<=20), 2 dòng
còn lại chứa dãy a và b
Dữ liệu ra: chứa dãy c
inp
4
2453
1676

out
21465736
Bài 43: Cho 2 dãy số nguyên a= (a1,a2,....an) và b=(b1,b2,...,bn). Các phần
tử của mỗi dãy đã được sắp xếp theo thứ tự không giảm, mỗi phần tử có giá
trị tuyệt đối không vượt quá 32000. Hãy hoà hai dãy a và b thành dãy không
giảm c=(c1,c2,...,c2n)
Dữ liệu vào: Gồm 3 dòng: Dòng 1 chứa số nguyên n (1<=n<=100), 2 dòng
còn lại chứa dãy a và b
Dữ liệu ra: chứa dãy c
inp
4
248
356
out
234568
Bài 44: Bai 4.12 (s¸ch bµi tËp)
Bài 45:
Ở công viên thành phố có 1 bức tường, tên bức tường người ta gắn bức phù
Hiệu tái hiện sự tích liên quan tới sự tích anh hùng của thành phố. ở dưới
chân bức tường, dự định ốp gạch trang trí một khoảng hình chữ nhật có kích
thước 2 x a có 2 loại gạch 1x2 và 2x2.
Hãy xác định số cách ốp khác nhau có thể thực hiện.
- Đọc dữ liệu từ tệp input gồm nhiều dòng:


+ Dũng u tiờn cha giỏ tr n
+ n dũng sau cha cỏc giỏ tr a (1<=a<=20)
Tp output gm a dũng, mi dũng cha mt kt qu tỡm c.
Vớ d
Inp

Out
3
1
1
3
2
2731
12
Hng dn:
Gi s cỏch p cú kớch thc a l sa ta cú:
A1=1;
A2=3;
Ak= Ak-1+ 2Ak-2 vi k >=3
..

Bai 46: Tìm dãy con liền nhau cực đại có các phần tử bằng
nhau:
- Dữ liệu vào từ tệp M.inp gồm 2 dòng:
+ Dòng 1 chứa số nguyên n
+ Dòng 2 chứa n số nguyên.
- Dữ liệu ra tệp M.out
+ Dòng 1 chứa vị trí đầu tiên của dãy số tăng dài nhất và
độ dài dãy số
+ Dòng 2 là các giá trị của dãy số
Inp
Out
8
5
34479991
999

Bai 47: Cho trc mt xõu nh phõn di bt k c a vo t file vn bn
INPUT.TXT. Cn bin i xõu nh phõn ny v dng ton s 0. Cỏc phộp bin i cú th
ch l mt trong cỏc loi sau:
- Bin i xõu con 11 thnh 00.
- Bin i xõu con 010 thnh 000.


Hãy chỉ một cách biển đổi xâu đã cho thành xâu có toàn 0. Kết quả thể hiện trong file
OUTPUT.TXT như sau:
Dòng đầu tiên của OUTPUT.TXT chứa xâu ban đầu, sau đó mỗi dòng là một xâu tiếp
theo sau một phép biến đổi, xâu cuối cùng là xâu toàn 0.

Ví dụ 1:
INPUT.TXT
11010011

OUTPUT.OUT
11010011
11010000
00010000
00000000

INPUT.TXT
10101101

OUTPUT.OUT
Khong the bien doi duoc

Ví dụ 2:
Bai 48: Dãy con

Cho một dãy số nguyên dương a1,a2,...,aN (10 < N < 10000), ai
<=10000 với mọi i=1..N và một số nguyên dương b (b < 100 000 000).
Yêu cầu : Tìm độ dài nhỏ nhất của dãy con chứa các phần tử liên tiếp
của dãy mà có tổng các phần tử lớn hơn hoặc bằng b.
Dữ liệu vào: Đọc từ file SUB.INP gồm nhiều test, mỗi test chứa N và
S ở dòng đầu. Dòng 2 chứa các phần tử của dãy.
Dữ liệu ra: Kết quả ghi vào file SUB.OUT, mỗi test đưa một dòng
chứa độ dài của dãy con tìm được.
Ví dụ :
SUB.INP
SUB.OUT
10 15
2
5 1 3 5 10 7 4 9 2 8
3
5 11
12345
Bài 49 - Đếm số ô vuông
Cho một bảng gồm NxN điểm nằm trên các mắt lưới ô vuông (3 ≤ N ≤
100). các điểm kề nhau trên một hàng hay một cột có thể được nối với nhau
bằng một đoạn thẳng hoặc không được nối. Các đoạn đó sẽ tạo ra các ô
vuông trên bảng.
Ví dụ: với bảng sau đây thì N = 4 và có 3 ô vuông:


Trên mỗi hàng có thể có nhiều nhất N-1 đoạn thẳng nằm ngang và có tất cả
N hàng như vậy. Tương tự như vậy có tất cả N-1 hàng các đoạn thẳng nằm
dọc và trên mỗi hàng có thể có nhiều nhất N đoạn.
Để mô tả người ta dùng hai mảng nhị phân: một mảng ghi các đoạn thẳng
nằm ngang kích thước N x (N-1), và một mảng ghi các đoạn nằm dọc kích

thước (N-1) x N. Trong mảng dùng số 1 để mô tả đoạn thẳng nối giữa 2
điểm, còn số 0 miêu tả giữa 2 điểm không có đoạn thẳng nối. Trong ví dụ
trên thì:
ma trận ngang
ma trận dọc
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
Cho trước ma trận ngang và ma trận dọc. Hãy lập trình đếm số ô vuông

trên bảng.
Dữ liệu vào được nhập từ các tập tin: ngang.inp và doc.inp.
+ Tập tin ngang.inp có N dòng, N-1 cột là các số 0 hoặc 1, mỗi số
được ghi cách nhau ít nhất một dấu cách.
+ Tập tin doc.inp có N-1 dòng và N cột là các số 0 hoặc 1, mỗi số
được ghi cách nhau ít nhất một dấu cách.
 Tập tin kq.out chứa kết quả cần tìm
Bài 50: Tính tích của số nguyên N và giá trị của xâu số:
input: Gồm 2 dòng: Dòng 1 chứa số nguyên n, dòng 2 là giá trị của xâu số.
output: chứa kết quả tính được
inp
Out
6172839499382716052835
5
1234567899876543210567

Bài 51:
Con ốc sên đang ở gốc của một cái cây cao v mét tính từ gốc. Ốc sên muốn
bò lên ngọn cây để ăn những lá non trên đó. Ban ngày ốc sên bò được a mét
lên trên, nhưng ban đêm, khi ngủ nó bị trôi xuống dưới b mét.
Yêu cầu: Cho các số nguyên v,a,b (1<=b<=a<=v<=109).
Hãy xác định số ngày cần thiết để ốc sên lên tới ngọn cây.
Dữ liệu vào: Vào từ file văn bản SNAIL.INP gồm một dòng chứa 3 số
nguyên a,b,v.


Kết quả : Đưa ra file văn bản SNAIL.OUT một số nguyên - kết quả tìm được
Ví dụ:
SNAIL.INP
215


SNAIL.OUT
4

Bài 52 :
Steve không tập trung tư tưởng trong giờ toán vì vậy thầy giáo cho thêm bài
tập về nhà rèn luyện khả năng tập trung tư tưởng và tính cẩn thận chu đáo.
Nôi dung bài tập là cho n xâu chỉ bao gồm các kí tự la tinh thường và các
chữ số. Đoạn kí tự số liên tục tạo thành một số nguyên. Ở mỗi đoạn kí tự số
liên tục Steve phải trích ra số lớn nhất có thể, sắp xếp các số nhận được từ
các xâu đã cho và đưa ra theo thứ tự không giảm, mỗi số được đưa ra dưới
dạng không có các chữ số 0 không có nghĩa.
Ví dụ: Với số n=1 và xâu là 01a2b3456cde478 dãy số cần đưa ra là 1,2,
478,3456.
Yêu cầu: Cho một số nguyên n ( 1<=n <= 100) và n xâu, mỗi xâu có độ dài
không quá 100.
Hãy đưa ra dãy số nhận được đã sắp xếp theo thứ tự không giảm,mỗi số trên
một dòng.
Dữ liệu:vào từ văn bản NUMBERS.INP:
Dòng đầu tiên chứa số nguyên n,
Mỗi dòng trong n dòng sau chứa một xâu chỉ gồm các kí tự la tinh thường và
số.
Dữ liệu đảm bảo không quá 500 số được tách ra.
Kết quả: Đưa ra file văn bản NUMBERS.OUT dãy số nhận được đã sắp xếp
theo thứ tự không giảm, mỗi số trên một dòng.
Ví dụ :
NUMBERS.INP
4
43silos0
zita002

le2sim
231233

NUMBERS.OUT
0
2
2
43
231233

Bài 53:
Xét dãy số nguyên a1,a2,...,an,...., trong đó a1 =1, an được xác định
như sau:
Đảo ngược thứ tự viết các chữ số của an-1 (trong hệ cơ số 10) và cộng thêm 2
vào số nhận được.
Phần đầu của dãy số này có giá trị như sau
Chỉ số 1
2
3
4
5
6
7
8
....
Dãy a 1
3
5
7
9

11
13
33
....


Yêu cầu: cho số nguyên dương n. dãy xác định an (1<= n <=109).
Dữ liệu : vào tư file văn bản SEQUENCE.INP gồm nhiều tests, mỗi tests
trên một dòng chứa một số nguyên n.
Kết quả : Đưa ra file văn bản SEQUENCE.OUT, kết quả mỗi tests đưa ra
trên một dòng.
Ví dụ
SEQUENCE.INP
SEQUENCE.OUT
1
12

1
77

Bài 54: Chuyển số thập phân sang hệ nhị phân
Dữ liệu vào từ tệp input:chữa 1 số thập phân
Dữ liệu ra: Là số ở hệ nhị phân tương ứng
INP
OUT
8
1100
Bài 55: Chuyển số nhị phân sang hệ thập phân
Dữ liệu vào từ tệp input:chữa 1 dãy bit
Dữ liệu ra: Là số ở hệ thập phân tương ứng với dãy bit đó

INP
1100

OUT
8

Bài 56: Chuyển số thập phân sang hệ 16
Dữ liệu vào từ tệp input:chữa 1 số thập phân
Dữ liệu ra: Là số ở hệ 16 tương ứng
INP
OUT
42
2A
Bài 57: Chuyển số hệ 16 sang hệ thập phân
Dữ liệu vào từ tệp input:chữa 1 dãy bit
Dữ liệu ra: Là số ở hệ thập phân tương ứng với dãy bit đó
INP
2A

OUT
42

Bài 58: Xâu đối xứng

Xâu đối xứng là xâu đọc giống nhau nếu ta bắt đầu đọc từ trái qua phải hoặc
từ phải qua trái. Ví dụ, xâu RADAR là xâu đối xứng, xâu TOMATO không
phải là xâu đối xứng.
Yêu cầu: Cho một xâu S gồm không quá 200 kí tự. Cho biết S có phải là xâu
đối xứng hay không? Nếu không, cho biết số kí tự ít nhất cần chèn vào S để
S trở thành xâu đối xứng.



D liu: Vo t file vn bn doixung.INP, gm duy nht 1 dũng ghi xõu S.
Kt qu: Ghi ra file vn bn doixung.OUT, duy nht s k l s kớ t ớt nht
cn thờm vo S S tr thnh xõu i xng. Nu xõu S ó cho l i xng
thỡ ghi k = 0.

VD:
inp
TOMATO

out
3

B i 59:
Cho một số nguyên dơng k và một xâu ký tự s. Xâu s chỉ gồm
các ký tự là các chữ cái la tinh thờng a..z và các chữ số 0..9, trong
đó có ít nhất k ký tự là chữ số. Bạn hãy viết một chơng trình loại bỏ
một số ký tự ra khỏi xâu s sao cho k ký tự còn lại, theo đúng thứ tự đó
tạo nên số nhỏ nhất. Trong k ký tự còn lại có thể cho phép các chữ số 0
đứng đầu.
Dữ liệu: Vào từ file văn bản MIN.OUT gồm 2 dòng. Dòng thứ nhất chứa
số nguyên dơng k (k 10). Dòng thứ hai chứa xâu s có độ dài nhỏ
hơn 250.
Kết quả: Ghi ra file MIN.OUT File ra gồm một dòng ghi ra k ký tự còn lại
tạo nên số nhỏ nhất.
Ví dụ:
MIN.INP
MIN.OUT
4

0108
307uv5x1y08mnp
Bi 60
S SINH ễI
Trong lý thuyt s hai s nguyờn t p v q c gi l cp s nguyờn t sinh ụi nu q
p = 2. Vớ d, cỏc cp s (3, 5), (11, 13), (17, 19) l cỏc cp sinh ụi. Trong trng hp
tng quỏt, vi s nguyờn dng k cho trc, cp s nguyờn t p v q c gi l sinh
ụi (tng quỏt) nu q p = k. Vớ d, vi k = 4 cp s nguyờn t (3, 7) c gi l sinh
ụi tng quỏt.
Tn ti gi thuyt l cỏc cp s nguyờn t sinh ụi nhiu vụ hn. Tuy nhiờn, iu ú cha
c chng minh. D dng thy rng vi k cho trc, xỏc nh s cp sinh ụi tng quỏt
trong tp s t nhiờn l bi toỏn phc tp khụng kộm vic xỏc nh s lng cp sinh ụi
theo nh ngha thụng thng.
õy chỳng ta xột mt bi toỏn n gin hn.
Yờu cu: Cho n v k (1 n, k 106). Hóy xỏc nh s cp sinh ụi tng quỏt trong
phm vi t 1 n n.
D liu: Vo t file vn bn sinhdoi.INP gm mt dũng cha 2 s nguyờn n v k.
Kt qu: a ra file vn bn sinhdoi.OUT. Dũng u cha mt s nguyờn s lng cp
tỡm c, n dũng tip theo cha cỏc cp.


Ví dụ:
.INP

.OUT
3
3 5
5 7
11 13


17 2

Bài 61:
Năm nay ông già Noel dự định đi phân phát quà cho n trẻ em, mỗi em một phần quà. Các
em được đánh số từ 1 đến n. Các chú yêu tinh lùn giúp việc đã chuẩn bị 2 túi, xếp quà
vào trong đó và ghi lại bên ngoài túi những người nhận quà, m phần quà
đã được xếp vào túi thứ nhất, k phần quà – vào túi thứ 2. Công việc rất
tất bật, nhưng có lúc cũng phải nghỉ giải lao một chút. Thấy các chú yêu
quá vất vả, ông già Noel mang thêm một túi nữa tới và đề nghị cho
những phần quà còn lại vào túi này.

Yêu cầu: Cho n, m, k và danh sách người nhận quà ở mỗi túi. Hãy xác
định danh sách người nhận quà ở túi thứ 3 và đưa ra theo thứ tự tăng dần.
Tất cả các em đều có quà.

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




Dòng đầu tiên chứa 3 số nguyên n, m và k (1 ≤ n, m, k ≤ 104,
m+k ≤ n),
Dòng thứ 2 chứa m số nguyên – danh sách người nhận quà ở túi thứ nhất,
Dòng thứ 3 chứa k số nguyên – danh sách người nhận quà ở túi thứ hai.

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



Dòng thứ nhất chứa số nguyên p – số lượng quà ở túi thứ 3,

Dòng thứ 2 chứa p số nguyên – danh sách người nhận quà ở túi thứ ba.

Ví dụ:
QUA.INP
7 2 1
7 3
1

QUA.OUT
4
2 4 5 6

Bài 62:

Cho số nguyên n và dãy số nguyên a1,a2,..an. (n<=100) Hãy tìm độ dài dãy con tăng có
nhiều phần tử nhất (Là dãy thoả mãn phần tử sau lớn hơn phần tử trước.)
- Input gồm số nguyên N và dãy gồm n số
- Output là độ dài dãy thoả mãn.

VD:
inp
6
2 1 7 8 6 10

Out
4


Bài 63:
Có n cuộc họp, cuộc họp thứ i bắt đầu vào thời điểm ai và kết thúc vào thời điểm bi. Do chỉ có

một phòng hội thảo nên 2 cuộc họp bất kỳ sẽ được cùng bố trí phục vụ nếu khoảng thời gian làm
việc của chúng chỉ giao nhau tại đầu mút. Hãy bố trí phòng họp để phục vụ được nhiều cuộc họp
nhất.
- input gồm số nguyên N, các dòng sau mỗi dòng chứa 2 số là thời điểm bắt đầu và kết
thúc của một cuộc họp
- Output là số cuộc họp được bố trí nhiều nhất.
VD:
inp
Out
4
3
14
46
39
68

Bài 64: Hội trường
Nhà trường có một phòng hội trường. Có những yêu cầu muốn sử dụng phòng hội
trường này, mỗi yêu cầu cho biết thời điểm bắt đầu và thời điểm kết thúc. Nhà trường có
thể chấp nhận hoặc từ chối đối với một yêu cầu.
Yêu cầu: hãy giúp nhà trường chọn các yêu cầu sử dụng hội trường sao cho tổng thời gian
hội trường được sử dụng là lớn nhất.
Dữ liệu: Vào từ file văn bản HT.INP:
- Dòng đầu tiên chứa một số nguyên dương n (n ≤ 100), số yêu cầu.
- Mỗi dòng trong số n dòng tiếp theo chứa 2 số nguyên dương p và k (0 ≤ p < k ≤
30000), mô tả một yêu cầu bắt đầu tại thời điểm p và kết thúc tại thời điểm k.
Kết quả: Ghi ra file văn bản HT.OUT số nguyên duy nhất là tổng thời gian lớn nhất mà
hội trường được sử dụng.
Ví dụ:
HT.INP

HT.OUT
4
19
1 4
4 6
3 7
6 20

……………..
Bài 65
Xếp khách
Một khách sạn có N phòng đôi (phòng cho 2 người) được đánh số từ 1 đến N. Khi
có một đoàn khách đến thuê phòng, tiếp tân của khách sạn sẽ xếp khách vào phòng theo
quy tắc sau: Mỗi cặp khách sẽ được xếp vào phòng chỉ số nhỏ nhất trong các số phòng
trống. Nếu số lượng khách của đoàn là số lẻ thì người cuối cùng của đoàn khách sẽ được
xếp vào phòng có chỉ số nhỏ nhất trong số các phòng trống. Nếu không còn phòng trống,
thì số khách chưa có phòng sẽ được xếp tuần tự từng người một vào phòng có chỉ số nhỏ
nhất trong số các phòng mới có một khách ở (của đoàn khách đến trước). Đầu tiên tất cả
các phòng của khách sạn là trống.


Yêu cầu: Cho trước trình tự đến của các đoàn khách và số lượng khách của mỗi đoàn.
Hãy xác định số lượng khách trong mỗi phòng của khách sạn.
Dữ liệu: Vào từ file vănbản KHACH.INP:
- Dòng đầu tiên chứa 2 số nguyêndương N (1 <= N <= 100) và G được ghi cách nhau bởi
dấu cách. N là số phòng của khách sạn, G là số lượng đoàn khách.
- Dòng thứ i trong số G dòng tiếp theo chứa số lượng khách của đoàn khách thứ i (các
đoàn khách được đánh số theo thứ tự đến khách sạn bắt đầu từ 1).
Giả thiết rằng không có 2 đoàn khách nào đến khách sạn vào cùng một thời điểm và tổng
số khách của tất cả các đoàn không vượt quá sức chứa của khách sạn (<=2N).

Kết quả: Ghi ra file KHACH.OUT: Gồm N dòng, dòng thứ i chứa số lượng khách của
phòng i (1<=i<=N).
Ví dụ:
KHACH.IN
7 3
3
1
4
KHACH.OUT
2
1
1
2
2
0
0

KHACH.IN
5 4
3
1
1
4
KHACH.OUT
2
2
2
1
2


KHACH.IN
8 7
3
1
3
2
1
3
1
KHACH.OUT
2
2
2
2
1
2
1
2

Bài 66
Các chữ số từ 1 tới 9 được mã hóa dưới dạng các từ chỉ chứa các ký tự a,b
và c theo qui tắc sau
Chữ 1
2
3
4
5
6
7
8

9
số

a
b
cc
bbc
cbc
abc
bac
aac
cac
Ví dụ: 142 - > abbcb
Cho xâu ký tự mã hóa , hãy chuyển ra số( vào ra từ tệp)
Inp: Dòng đầu tiên chứa giá trị n, n dòng sau mỗi dong chứa một xâu
Output: gồm n dòng, mỗi dòng chứa 1 dãy số đã được chuyển (cho tất cả các
bộ input đều chuyển được)


Inp
out
2
13
acc
142
abbcb
Bài 67. Phân tích số
Cho trước một số N nguyên dương. Hãy tìm các số nguyên dương
khác nhau sao cho tổng của các số đó bằng N và tích của các số đó là lớn
nhất.

Dữ liệu vào: từ tệp văn bản TICH.INP, chứa duy nhất một số N (2Dữ liệu ra: đưa ra tệp văn bản TICH.OUT có hai dòng
- Dòng 1: Chứa số S là số lượng các số tìm được theo yêu cầu
- Dòng 2: Chứa S số tìm được theo thứ tự tăng dần.
Ví dụ:
TICH.INP
TICH.OUT
10
3
235
Bài 68: Cho số tự nhiên N(2x3 thoả mãn x1≥x2≥x3>0 và x1+x2+x3=N.
 Tệp chương trình đặt tên là PHANTICH.PAS
 Dữ liệu: vào từ tệp PHANTICH.INP
 Kết quả: ra tệp PHANTICH.OUT (Tất cả các kết quả thỏa mãn)
 Ví dụ:
PHANTICH.INP
6

PHANTICH.OUT
411
321
222
Bài 69: Cho dãy số nguyên A1, A2, … An. Tìm dãy con có các phần tử liên
tiếp nhau của dãy ban đầu thỏa mãn: là dãy tăng dài nhất mà các phần tử đều
chẵn.
 Tệp chương trình đặt tên là DAYCON.PAS
 Dữ liệu: vào từ tệp DAYCON.INP: Dòng đầu tiên chứa giá trị n,
dòng thứ 2 chứa dãy số
 Kết quả: ra tệp DAYCON.OUT: Dòng đầu tiên là độ dài của dãy

số, dòng thứ 2 là các phần tử của dãy
 Ví dụ:
DAYCON.INP
DAYCON.OUT
7
3


1243 248

248

(Nu cú nhiu dóy thỡ a ra day cui cựng)
Bai 70
Bảo vệ (7 Điểm)
Mt khu dõn c sinh sụng trờn mt din tớch t bao gm t lin v
h nc. Bản đồ khu dân c hình chữ nhật mô tả một số
diện tích hồ nớc thiên nhiên đợc chia lới ô vuông sao cho mỗi
ô của lới chỉ đợc xem nh có 2 trạng thái: hoặc là diện tích
hồ, hoặc không phải. Ngời ta muốn xây tờng rào xung
quanh các hồ này để bảo vệ an toàn cho mọi ngời. Mỗi cạnh
của lới đợc xây tờng rào nếu nó là cạnh chung của 2 ô khác
trạng thái (các cạnh thuộc biên bản đồ không đợc tính). Lập
trình tính tổng chiều dài của tờng rào (theo đơn vị cạnh
ô lới).
Dữ liệu : Vào từ file văn bản BV.INP gồm:
Dòng đầu ghi M (số dòng của lới) và N (số cột của lới).
( M,N <200)
Mỗi dòng trong số M dòng tiếp mô tả trạng thái của N ô
lới tơng ứng của dòng gồm N số 0 (là đất) hoặc 1 (là

hồ) theo đúng thứ tự các ô trong lới.
Kết quả: Ghi ra file văn bản BV.OUT gồm một số ghi giá trị
chiều dài tờng rào.
Ví dụ: Bản đồ (các ô có mầu xám là diện tích hồ, các cạnh
đậm là tờng rào) có các file vào, ra tơng ứng nh sau:
BV.INP
6
0
0
0
0
0
0

11
00
01
00
10
11
00

BV.OUT
43

1
1
1
0
0

0

1
1
0
0
0
0

0
1
0
1
0
0

0
0
1
1
1
0

0
1
1
0
1
1


0
0
1
1
1
1

0
0
1
1
0
1

0
0
0
0
0
1


Bài 71: Đề 2008-2009
Bài 72: Liệt kê các dãy nhị phân có độ dài n.
-

VD:
inp
2


Input là sô nguyên dương n (N<=20)
Output là tất cả các dãy nhị phân có độ dài n, mỗi dãy trên một dòng
Out
00
01
10
11



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×