Tổng quan đề thi:chương trình Tên file dữ liệu vào Tên file Thời gian Bài 3 Đoạn được phủ dài nhất Bai3.* Bai3.inp Bai3.out 7 2 giây Chú ý: Dấu '*' được thay thế bởi PAS hoặc CPP của ngô
Trang 1Thời gian làm bài 180 phút
(Đề gồm có 03 bài trong 03 trang)
Trang 2Tổng quan đề thi:
chương trình
Tên file dữ liệu vào
Tên file
Thời gian
Bài 3 Đoạn được phủ dài nhất Bai3.* Bai3.inp Bai3.out 7 2 giây
Chú ý: Dấu '*' được thay thế bởi PAS hoặc CPP của ngôn ngữ lập trình tương ứng là Pascal hoặc C.
Hãy lập trình giải các bài toán sau: Bài 1 Xóa chữ số
Hãng cung cấp dịch vụ điện thoại XYZ khuyến khích nhiều người đăng kí thuê baobằng cách: Khi khách hàng đến đăng kí thuê bao thì sẽ được cấp hai số may mắn là sốnguyên dương n và k, hãng sẽ khuyến mại người đó một số tiền nhận được từ số n sau khi
xóa đúng k chữ số (k nhỏ hơn số chữ số của n).
Hải vừa mới đăng kí thuê bao của hãng và được cung cấp hai số n và k, bạn hãygiúp Hải xóa đi k chữ số của số n để số nhận được là lớn nhất
Dữ liệu vào file văn bản Bai1.inp:
- Dòng thứ nhất là số n (số chữ số của n ≤ 10 5 )
- Dòng thứ hai là số k (k<n)
Kết quả ra file văn bản Bai1.out:
- Một dòng duy nhất là số lớn nhất có được sau khi xóa đi k chữ số của n
Ví dụ:
588162
8862357111317192329
Bài 2: Đếm hình chữ nhật
Cho một ma trận A kích thước MxN, các phần tử A[i,j] bằng 0 hoặc bằng 1, các ôsố 1 liền cạnh nhau khép kín có thể tạo thành hình chữ nhật đậm đặc – toàn là số 1 hoặc
hình chữ nhật bị rỗng ở trong (ở trong lòng hình chữ nhật có các số 0) Hãy viết chương
trình đếm xem có bao nhiêu hình chữ nhật như trên, trong đó có bao nhiêu hình chữ nhật
Trang 3đậm đặc (loại 1) và bao nhiêu hình chữ nhật rỗng ở trong có duy nhất một hình chữ nhật chứa toàn số 0 (loại 2)?
Dữ liệu vào từ file văn bản Bai2.inp:
- Dòng đầu chứa 2 số M, N (1<M,N<=200)- M dòng tiếp theo thể hiện ma trận A
(mỗi số cách nhau một dấu cách)
Kết quả ghi ra file văn bản Bai2.out:
- Dòng đầu chứa số lượng các loại hình chữ nhật- Dòng thứ hai chứa số lượng các hình chữ nhật loại 1- Dòng thứ ba chứa số lượng các hình chữ nhật loại 2.Ví dụ:
10 101 1 0 0 0 1 0 0 0 01 1 0 1 1 1 0 0 0 00 0 0 0 0 0 1 1 0 00 0 1 1 1 1 0 0 0 00 0 1 0 0 1 0 0 0 00 0 1 1 1 1 0 0 0 00 0 0 0 0 0 0 0 0 01 0 0 1 1 1 1 1 1 00 0 0 1 0 1 1 0 1 00 0 0 1 1 1 1 1 1 0
531
Ràng buộc:
- Có 30% số test ứng với 30% số điểm của bài có 1<M,N<=50.- Có 30% số test ứng với 30% số điểm của bài có 50<M,N<=100.- Có 40% số test ứng với 40% số điểm của bài có 100<M,N<=200
Bài 3: Đoạn được phủ dài nhất
Cho N đoạn thẳng có các đầu mút đánh dấu trên trục số là [Li,Ri], i=1 N (Li,Ri có
giá trị tuyệt đối nhỏ hơn 32.000) Viết chương trình tìm đoạn trục số được phủ liên tiếp
dài nhất bởi các đoạn thẳng đã cho?
Dữ liệu vào từ file văn bản Bai3.inp:
- Dòng đầu là số N (1<N<=10.000) - N dòng tiếp theo mỗi dòng biểu diễn đầu mút các đoạn thẳng là Li và Ri (mỗi số
cách nhau một dấu cách).
Kết quả ghi ra file văn bản Bai3.out:
Trang 4Một dòng duy nhất ghi độ dài liên tiếp lớn nhất trên trục số mà các đoạn thẳng đã phủ được.
Ví dụ:
77 120 520 2533 386 827 3411 19
13
Ràng buộc:
- Có 30% số test ứng với 30% số điểm của bài có 1<N<=1000.- Có 30% số test ứng với 30% số điểm của bài có 1000<N<=5000.- Có 40% số test ứng với 40% số điểm của bài có 5000<N<=10000
-HẾT -Thí sinh không được sử dụng tài liệu Cán bộ coi thi không giải thích gì thêm.
Họ tên thí sinh:………SBD…………SỞ GD&ĐT HÀ NỘI
Trường THPT Chu Văn An
OLYMPIC KHU VỰC DUYÊN HẢI BẮC BỘ
Năm học: 2012 – 2013 HƯỚNG DẪN CHẤM MÔN TIN HỌC LỚP 10
- Có 10 test trong đó:
+ Các test và kết quả các test lưu trên disk.+ Đưa ra kết quả đúng: Mỗi test 0,6 điểm.+ Nếu chương trình không cho ra kết quả, giám khảo có thể xem lại mã nguồn vàđánh giá bài làm và cho tối đa 2 điểm
Bài 2: Đếm hình chữ nhật (7 điểm)
- Có 10 test trong đó:
+ Các test và kết quả các test lưu trên disk.+ Đưa ra kết quả đúng: Mỗi test 0,7 điểm
Trang 5+ Nếu chương trình không cho ra kết quả, giám khảo có thể xem lại mã nguồn vàđánh giá bài làm và cho tối đa 2 điểm.
- Có 10 test trong đó:
+ Các test và kết quả các test lưu trên disk.+ Đưa ra kết quả đúng: Mỗi test 0,7 điểm.+ Nếu chương trình không cho ra kết quả, giám khảo có thể xem lại mã nguồn vàđánh giá bài làm và cho tối đa 2 điểm
SỞ GD&ĐT QUẢNG NAM TRƯỜNG THPT CHUYÊN NGUYỄN BỈNH KHIÊM
KỲ THI CHỌN HỌC SINH GIỎI KHU VỰC DUYÊN HẢI & ĐỒNG BẰNG BẮC BỘ NĂM 2013
ĐỀ THI ĐỀ NGHỊ MÔN: TIN HỌC, LỚP 10
( Thời gian: 180 phút không kể thời gian giao đề)
I. Tổng quan đề thi:
Tên bài BAN TIN BONG
DA
Dữ liệu vào BANGDIEM.INP GIACANHO.INP TICK.INP
Chú ý: - Bài thi được làm trên ngôn ngữ Free Pascal.
Quy ước: Trận thắng được 3 điểm, trận hòa được 1 điểm, thua là 0 điểm.
Yêu cầu: Người lập trình giúp Ban tổ chức, thống kê số trận thắng, hòa, thua, tổng
điểm của mỗi đội, và tìm được đội bóng đá mạnh nhất
Dữ liệu: Vào từ file văn bản BANGDIEM.INP
Dòng đầu tiên ghi hai số nguyên dương n, m tương ứng là n đội và mtrận đấu của mỗi đội, giữa 02 số cách nhau bởi dấu cách
Dòng thứ i trong n dòng tiếp theo chứa m số nguyên thuộc một trong cácsố 0, 1, 3 ứng với điểm mỗi trận đấu, và cách nhau bởi dấu cách
Kết quả: Ghi ra file văn bản TKEGIAI.OUT: Ghi n dòng, mỗi dòng là bốn chữ số,
theo thứ tự là số lượng trận thắng, hòa, thua và số cuối là tổng điểm của mỗi đội
Trang 6Dòng tiếp theo, ghi số thứ tự của đội bóng trong danh sách ban đầu là đội bóngmạnh nhất Nếu trong trường hợp có nhiều đội bóng có cùng tổng số điểm thì ta liệtkê hết các số thứ tự của đội bóng đó và cách nhau bởi dấu cách
Ví dụ:
Bài 2 NHÀ CHUNG CƯ
Một khu chung cư được xây dựng nhằm đáp ứng nhu cầu nhà ở đối với nhữngngười có thu nhập thấp Do nhu cầu nhà ở rất lớn và nhu cầu cũng rất khác nhau, nênngười kinh doanh nhà ở đã xây dựng với số lượng căn hộ rất lớn và giá trị cho thuê củamỗi căn hộ cũng khác nhau Mỗi căn hộ được trang bị khá đầy đủ tiện nghi, đảm bảo chomột ga đình sinh hoạt hàng ngày
Yêu cầu: Người lập trình hãy giúp cho người kinh doanh thống kê có bao nhiêu
loại căn hộ ứng với các mức giá trị cho thuê Đồng thời cho biết số lượng căn hộ có giá trịcho thuê bao nhiêu là nhiều nhất?
Dữ liệu: Vào từ file văn bản GIACANHO.INP
Dòng đầu tiên ghi số nguyên dương N là số lượng căn hộ của khu chungcư
Dòng thứ hai trở đi, mỗi dòng chứa 10 số (cho đến khi hết N số), mỗi sốcách nhau một dấu cách, dòng cuối cùng có thể ít hơn 10 số, số nhỏ nhất là100 (đơn vị tính là triệu đồng), số lớn nhất là 800
Kết quả: Ghi ra file văn bản LOAIGIA.OUT: dòng đầu ghi M là số lượng loại căn
hộ khác nhau ứng với mỗi giá trị cho thuê; dòng thứ hai ghi 2 chứ số cách nhau bởidấu cách, số đầu ghi số lượng căn hộ có mức giá cho thuê nhiều nhất, số thứ hai làgiá trị căn hộ đó
BANGDIEM.INP
3 4 1 3 0 0 3 3 3 1 1 1 0 0
GIACANHO.INP
15 100 150 150 200 250 300 250 150 400 150 500 150 600 700 800
LOAIGIA.OUT
10 5 150
Trang 7tối đa 2 vé, vì thế một số người có thể nhờ người đứng ngay trước mình mua hộ vé.Người thứ i nhận mua vé cho người thứ i+1 thì thời gian mua vé cho 2 người là ri
Yêu cầu: Tính thời gian nhỏ nhất để bán vé xong cho N người Dữ liệu vào: Đọc từ file TICK.INP
Dòng thứ nhất ghi số N
Dòng thứ hai ghi N số nguyên dương t1, t2, …, tN Dòng thứ ba ghi N – 1 số r1, r2, …, rN-1
Dữ liệu ra: Kết quả ghi ra file TICK.OUT
Dòng thứ nhất ghi tổng thời gian phục vụ bán vé Các dòng tiếp theo ghi chỉ số của các khách hàng cần rời khỏi hàng, mỗidòng 10 số, ngược lại nếu không có ai rời khỏi hàng ghi số 0
172 4 -Hết -
HƯỚNG DẪN CHẤM
Bài 1( 6 điểm).
Program bangtinbongda; Const inp='BangDiem.inp'; out='Tkegiai.out'; var a: array[1 100,1 100] of word;
Trang 8s,t,h: array[1 100] of word; i,j,n,m,max: byte;
fi,fo:Text; Procedure docfile_xuly; Var i,j:Byte;ss:Word; Begin
assign(fi,inp);reset(fi); readln(fi,n,m);
fillchar(s,sizeof(s),0); fillchar(t,sizeof(t),0); fillchar(h,sizeof(h),0); for i:=1 to n do
begin for j:=1 to m do begin
read(fi,a[i,j]); s[i]:=s[i]+a[i,j]; if a[i,j]=3 then t[i]:=t[i]+1; if a[i,j]=1 then h[i]:=h[i]+1; end;
readln(fi); end;
close(fi); max:=s[1]; for i:=2 to n do if max<s[i] then max:=s[i]; End;
Procedure ghifile; Var i,j: Byte; Begin
assign(fo,out);rewrite(fo); for i:=1 to n do
writeln(fo,t[i]:3,h[i]:3,m-(t[i]+h[i]):3,s[i]:3); for i:=1 to n do if s[i]=max then write(fo,i:3); close(fo);
end; BEGIN docfile_xuly; ghifile; END.
3 4 1 3 0 0 3 3 3 1 1 1 0 0
1 1 2 4 3 1 0 10 0 2 2 2 2
4 5 1 0 0 3 3 0 1 1 1 3 3 1 1 1 1 1 1 1 1 0
2 1 2 7 1 3 1 6 1 4 0 7 0 4 1 4 1 3
5 5 1 1 1 3 3 1 1 3 3 3 0 0 0 1 1 3 3 3 1 1 1 1 1 0 0
2 3 0 9 3 2 0 11 0 2 3 2 3 2 0 11 0 3 2 3 2 4
Bài 2(7 điểm).
Program giachungcu; Const inp='giacanho.inp'; out='loaigia.out'; var a,d: array[1 1000] of integer; n,i,gt,sl,giaLN,dem:integer; fi,fo:Text;
Procedure docfile_xuly; Begin
assign(fi,inp);reset(fi); readln(fi,n);
fillchar(d,sizeof(d),0); giaLN:=0;
for i:=1 to n do
Trang 9begin if (i mod 10)<> 0 then read(fi,a[i]) else readln(fi,a[i]); d[a[i]]:=d[a[i]]+1;
if giaLN<a[i] then giaLN:=a[i]; end;
close(fi); sl:=0;dem:=0; for i:=1 to giaLN do if d[i]<> 0 then begin
dem:=dem +1; if sl<d[i] then begin
sl:=d[i];gt:=i; end;
end; end;
Procedure ghifile; Begin
assign(fo,out);rewrite(fo); write(fo,dem:4);writeln(fo); write(fo,sl:4,gt:4);
close(fo); end;
BEGIN docfile_xuly; ghifile; END.
Test 1 (3 điểm)
15 100 150 150 200 250 300 250 150 400 150 500 150 600 700 800
10 5 150
Test 2 (4 điểm)
22 100 200 150 200 250 300 300 300 300 650 500 150 300 700 800 750 550 300 200 300 300 450
12 8 300
Bài 3(7 điểm).
program muave; var x,r,loai,tam:array[1 100] of integer; kt:array[1 100] of boolean;
n,s,i,min:integer; st,kq:string; procedure int; begin
s:=0; min:=maxint; write(' nhap n : ');readln(n); for i:=1 to n do
begin write(' nhap x[',i,'] : ');readln(x[i]); kt[i]:=true;
end; for i:=1 to n-1 do begin
write(' nhap r[',i,'] : ');readln(r[i]);
Trang 10end; end;
procedure check(s:integer); begin
if s < min then begin
min:=s; kq:=st; end;
st:=''; end;
procedure try(i:integer); var j:integer;
a:string; begin if kt[i] then begin for j:=0 to 1 do begin
if i=n then s:=s+x[i] else s:=s+x[i]*(1-j)+ r[i]*j; kt[i]:=false;
if j=1 then begin kt[i+1]:=false; str(i+1,a); st:=st+' '+a; end;
if i=n then check(s) else try(i+1); if i=n then s:=s-x[i] else
s:=s-x[i]*(1-j) - r[i]*j; kt[i]:=true;
kt[i+1]:=true; end;
end else if i=n then check(s) else try(i+1); end;
BEGIN int; try(1); writeln(min); writeln(kq); readln
END
Test 1 (2 điểm) Test 2(2 điểm) Test 3(3 điểm)
5 2 5 7 8 4 4 9 10 10
5 7 8 4 50 50 50
8 7 6 5 4 3 20 15 26 18 12
33
S GD & ĐT T NH HÒA BÌNH Ở GD & ĐT TỈNH HÒA BÌNH ỈNH HÒA BÌNH Tr ường THPT Chuyên Hoàng Văn Thụ ng THPT Chuyên Hoàng Văn Th ụ
Ng ười soạn: Vương Thành Trung i so n: V ạn: Vương Thành Trung ương Thành Trung ng Thành Trung
Đ THI CH N H C SINH GI I THPT Ề THI CHỌN HỌC SINH GIỎI THPT ỌN HỌC SINH GIỎI THPT ỌN HỌC SINH GIỎI THPT ỎI THPT CÁC TR ƯỜNG CHUYÊN MIỀN DUYÊN HẢI NG CHUYÊN MI N DUYÊN H I Ề THI CHỌN HỌC SINH GIỎI THPT ẢI
Đ NG B NG B C B ỒNG BẰNG BẮC BỘ ẰNG BẮC BỘ ẮC BỘ Ộ L N TH VI – NĂM H C 2012 – 2013 ẦN THỨ VI – NĂM HỌC 2012 – 2013 Ứ VI – NĂM HỌC 2012 – 2013 ỌN HỌC SINH GIỎI THPT
(Đ thi đê ngh ) ề thi đê nghị) ị) MÔN: TIN H C L P 10 ỌN HỌC SINH GIỎI THPT ỚP 10
(Th i gian làm bài 180 phút) ờng THPT Chuyên Hoàng Văn Thụ
Trang 11T ng quan đ thi ổng quan đề thi ề thi đê nghị) Tên bài Tên ch ương tr ng tr ình D li u vào ữ liệu vào ệu vào D li u ra ữ liệu vào ệu vào Th i gian ờng THPT Chuyên Hoàng Văn Thụ Đi m ểm
B ng n p ỏng nếp ếp CRACK.PAS CRACK.INP CRACK.OUT 1giây/test 7
Bài 1 Hàng đ i ợi
Có N ng ười hâm mộ (v i hâm m (v ộ (v ì không bi t tên h nên t m đ t tên h t 1 đ n N tính t đ u hàng) đ ng ếp ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ặt tên họ từ 1 đến N tính từ đầu hàng) đứng ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ừ 1 đến N tính từ đầu hàng) đứng ếp ừ 1 đến N tính từ đầu hàng) đứng ầu hàng) đứng ứng tr ư c qu y bán vé đ mua vé cho m t kỳ EURO 2012 Đ có th mua m t chi c vé là không h d ầu hàng) đứng ộ (v ộ (v ếp ề dễ ễ dàng H ph i x p hàng t t i hôm tr ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ải xếp hàng từ tối hôm tr ếp ừ 1 đến N tính từ đầu hàng) đứng ối hôm tr ư c đ n sáng s m hôm sau, và theo t nhiên m t vài ng ếp ự nhiên một vài người ộ (v ười hâm mộ (v i trong s h có nhu c u s d ng nhà v sinh công c ng M i khi có nhu c u, ng ối hôm tr ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ầu hàng) đứng ệ sinh công cộng Mỗi khi có nhu cầu, người đó sẽ bước ra ộ (v ỗi khi có nhu cầu, người đó sẽ bước ra ầu hàng) đứng ười hâm mộ (v i đó sẽ b ư c ra kh i hàng đ i, và sau khi hoàn thành nhi m v , b ỏng nếp ợi ệ sinh công cộng Mỗi khi có nhu cầu, người đó sẽ bước ra ư c tr l i hàng, m c dù không nh t thi t ph i ở lại hàng, mặc dù không nhất thiết phải ạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ặt tên họ từ 1 đến N tính từ đầu hàng) đứng ất thiết phải ếp ải xếp hàng từ tối hôm tr là v trí tr ị trí trước đó V ư c đó V ì ch có 1 nhà v sinh, nên không ai b ỉ có 1 nhà vệ sinh, nên không ai b ệ sinh công cộng Mỗi khi có nhu cầu, người đó sẽ bước ra ư c ra kh i hàng đ i tr ỏng nếp ợi ư c khi ng ười hâm mộ (v i tr ư c đó tr l i hàng (nh v y t i b t k ở lại hàng, mặc dù không nhất thiết phải ạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ư ậy tại bất k ạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ất thiết phải ì th i đi m nào thì trong hàng ch có nhi u nh t 1 ng ời hâm mộ (v ỉ có 1 nhà vệ sinh, nên không ai b ề dễ ất thiết phải ười hâm mộ (v i v ng m t) ắng mặt) ặt tên họ từ 1 đến N tính từ đầu hàng) đứng
Su t đêm hôm tr ối hôm tr ư c, có t ng c ng K cu c vi ng thăm nhà v sinh M i cu c vi ng thăm đ ộ (v ộ (v ếp ệ sinh công cộng Mỗi khi có nhu cầu, người đó sẽ bước ra ỗi khi có nhu cầu, người đó sẽ bước ra ộ (v ếp ượi c mô t b i hai s nguyên A và B, bi u th r ng ng ải xếp hàng từ tối hôm tr ở lại hàng, mặc dù không nhất thiết phải ối hôm tr ị trí trước đó V ằng người có tên A bước ra khỏi hàng đợi và trở lại hàng đợi ười hâm mộ (v i có tên A b ư c ra kh i hàng đ i và tr l i hàng đ i ỏng nếp ợi ở lại hàng, mặc dù không nhất thiết phải ạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ợi ngay tr ư c m t ng ặt tên họ từ 1 đến N tính từ đầu hàng) đứng ười hâm mộ (v i có tên B Bây gi t t c các cu c vi ng thăm đ ời hâm mộ (v ất thiết phải ải xếp hàng từ tối hôm tr ộ (v ếp ã hoàn thành, th t c a N ứng ự nhiên một vài người ủa N ng ười hâm mộ (v ã b đ o l n trong hàng i đ ị trí trước đó V ải xếp hàng từ tối hôm tr ộ (v
Yêu c u: ầu: cho bi t trếp ư c các cu c vi ng thăm nhà v sinh, sau khi k t thúc k cu c vi ng thăm, h ộ (v ếp ệ sinh công cộng Mỗi khi có nhu cầu, người đó sẽ bước ra ếp ộ (v ếp ãy cho bi t ng ếp ười hâm mộ (v ứng i đ ng tr ư c và đ ng sau c a m i ng ứng ủa N ỗi khi có nhu cầu, người đó sẽ bước ra ười hâm mộ (v i trong hàng.
D li u vào ữ liệu vào ệu vào t file ừ 1 đến N tính từ đầu hàng) đứng QUEUE.INP:
Dòng đ u tiên ch a s nguyên N (2 ≤ N ≤ 10 ầu hàng) đứng ứng ối hôm tr 5 ) – s l ối hôm tr ượi ng ng ười hâm mộ (v i trong hàng Dòng thứ 2 chứa số nguyên K (1 ≤ K ≤ N ) – tổng số các cuộc viếng thăm nhà vệ
sinh
QUEUE.INP QUEUE.OUT
9 5 6 3 9 6 3 8 4 7 2 1
2 9 0 1 7 8 5 7 6 4 9 5 4 3 3 0 1 6 K dòng ti p theo m i dòng ch a hai s nguyên khác nhau A và B (1 ≤ A, B ≤ 10 ếp ỗi khi có nhu cầu, người đó sẽ bước ra ứng ối hôm tr 5 ), mô t m t ải xếp hàng từ tối hôm tr ộ (v
cu c vi ng thăm nhà v sinh ộ (v ếp ệ sinh công cộng Mỗi khi có nhu cầu, người đó sẽ bước ra
K t qu ết quả ả ghi ra file QUEUE.OUT: ghi ra N dòng:
Dòng th i : ghi hai s X Y th hi n ng ứng ối hôm tr ệ sinh công cộng Mỗi khi có nhu cầu, người đó sẽ bước ra ười hâm mộ (v ứng i đ ng tr ư c và sau ng ười hâm mộ (v i tên là i N u ng ếp ười hâm mộ (v i i là ng ười hâm mộ (v ầu hàng) đứng i đ u hàng th ì ng ười hâm mộ (v ứng i đ ng tr ư c ng ười hâm mộ (v i i là 0, ng ười hâm mộ (v i th i là ng ứng ười hâm mộ (v i cu i hàng th ối hôm tr ì ng ười hâm mộ (v i đ ng sau ng ứng ười hâm mộ (v i i là 0.
Ví d :
* Ghi chú: Có 60% test N ≤ 10 3
Bài 2 B NG N P ỎI THPT ẾP
Trang 12Công ty bánh k o IOI chuyên s n xu t bánh Chà lam, làm t b ng n p, m t mía và n ! ải xếp hàng từ tối hôm tr ất thiết phải ừ 1 đến N tính từ đầu hàng) đứng ỏng nếp ếp ậy tại bất k ư c g ng G o ừ 1 đến N tính từ đầu hàng) đứng ạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng n p đ ếp ượi c rang thành b ng theo ki u truy n th ng, dùng than c i Tuy quy tr ỏng nếp ề dễ ối hôm tr ủa N ình rang là truy n ề dễ th ng, nh ối hôm tr ư ng quá tr ình rang đã đ ượi ự nhiên một vài người ộ (v c t đ ng hóa.
Máy rang có R×C h p d t, l p thành R hàng, m i hàng có C h pộ (v ! ắng mặt) ỗi khi có nhu cầu, người đó sẽ bước ra ộ (v đ ng g o n p Đ nh kỳ, t t c các h p đ ự nhiên một vài người ạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ếp ị trí trước đó V ất thiết phải ải xếp hàng từ tối hôm tr ộ (v ượi c tr m t đ ti p c n v i l a than bên d ở lại hàng, mặc dù không nhất thiết phải ặt tên họ từ 1 đến N tính từ đầu hàng) đứng ếp ậy tại bất k ư i Trong m t ộ (v ca s n xu t, đ ng đ t x y ra M t s h p b l t m t Thi t b l p t c chuy n sang ch đ đi u ải xếp hàng từ tối hôm tr ất thiết phải ộ (v ất thiết phải " ộ (v ối hôm tr ộ (v ị trí trước đó V ậy tại bất k ặt tên họ từ 1 đến N tính từ đầu hàng) đứng ếp ị trí trước đó V ậy tại bất k ứng ếp ộ (v ề dễ khi n b ng tay m i hàng và m i c t có m t c n g t M i l n kéo c n t t c các h p trong hàng ằng người có tên A bước ra khỏi hàng đợi và trở lại hàng đợi # ỗi khi có nhu cầu, người đó sẽ bước ra ỗi khi có nhu cầu, người đó sẽ bước ra ộ (v ộ (v ầu hàng) đứng ạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ỗi khi có nhu cầu, người đó sẽ bước ra ầu hàng) đứng ầu hàng) đứng ất thiết phải ải xếp hàng từ tối hôm tr ộ (v (ho c c t) b l t m t h ặt tên họ từ 1 đến N tính từ đầu hàng) đứng ộ (v ị trí trước đó V ậy tại bất k ặt tên họ từ 1 đến N tính từ đầu hàng) đứng # ình bên, các m t trên c a h p là xanh Sau đ ng đ t, m t s h p l t m t ặt tên họ từ 1 đến N tính từ đầu hàng) đứng ủa N ộ (v ộ (v ất thiết phải ộ (v ối hôm tr ộ (v ậy tại bất k ặt tên họ từ 1 đến N tính từ đầu hàng) đứng đ lên B ng các thao tác kéo c n nh ỏng nếp ằng người có tên A bước ra khỏi hàng đợi và trở lại hàng đợi ầu hàng) đứng ư trên h ình vẽ thì ch còn m t h p không l t đ ỉ có 1 nhà vệ sinh, nên không ai b ộ (v ộ (v ậy tại bất k ượi c đúng m t ặt tên họ từ 1 đến N tính từ đầu hàng) đứng B ng trong đó sẽ không đ tiêu chu n đ s n xu t bánh ỏng nếp ở lại hàng, mặc dù không nhất thiết phải ủa N " ải xếp hàng từ tối hôm tr ất thiết phải
Yêu c u: ầu: Cho R, C và ma tr n ậy tại bất k R×C các ph n t {0, 1} S 1 ký hi u h p tầu hàng) đứng ối hôm tr ệ sinh công cộng Mỗi khi có nhu cầu, người đó sẽ bước ra ộ (v ương ứng bị lật do động ng ng b l t do đ ng ứng ị trí trước đó V ậy tại bất k ộ (v đ t H ất thiết phải ãy xác đ nh s h p t i đa cho s n ph m đ t ch t l ị trí trước đó V ối hôm tr ộ (v ối hôm tr ải xếp hàng từ tối hôm tr " ạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ất thiết phải ượi ng n u công nhân tr c thao tác ch nh ếp ự nhiên một vài người ỉ có 1 nhà vệ sinh, nên không ai b lý b ng tay t t ằng người có tên A bước ra khỏi hàng đợi và trở lại hàng đợi ối hôm tr
D li u: ữ liệu: ệu: Vào t file văn b n ừ 1 đến N tính từ đầu hàng) đứng ải xếp hàng từ tối hôm tr CRACKERS.INP:
Dòng đ u tiên ch a 2 s nguyên ầu hàng) đứng ứng ối hôm tr R và C (1 ≤ R ≤ 10, 1 ≤ C ≤ 103 ), M i dòng trong ỗi khi có nhu cầu, người đó sẽ bước ra R dòng sau ch a ứng C s nguyên trong t p {0, 1} mô t m t hàng c a máyối hôm tr ậy tại bất k ải xếp hàng từ tối hôm tr ộ (v ủa N
Trang 13ch i có làm khó ng ơng ứng bị lật do động ười hâm mộ (v i ch i b ng cách thi t k m t vài chi c c c lung lay, vài chi c c c khác l i b ơng ứng bị lật do động ằng người có tên A bước ra khỏi hàng đợi và trở lại hàng đợi ếp ếp ộ (v ếp ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ếp ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ị trí trước đó V m c nát.
V i m t chi c c c i lung lay: MARIO ch có th b ộ (v ếp ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ỉ có 1 nhà vệ sinh, nên không ai b ư c t c c i – 1 t i c c i, và t c c i ch có ừ 1 đến N tính từ đầu hàng) đứng ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ừ 1 đến N tính từ đầu hàng) đứng ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ỉ có 1 nhà vệ sinh, nên không ai b th b ư c sang c c i + 1 ho c nh y sang c c i + 2 ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ặt tên họ từ 1 đến N tính từ đầu hàng) đứng ải xếp hàng từ tối hôm tr ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng
V i m t chi c c c b m c nát: MARIO không th đ ng trên đó vì nó sẽ gãy và MARIO sẽ b ộ (v ếp ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ị trí trước đó V ứng ị trí trước đó V r i xu ng sông ơng ứng bị lật do động ối hôm tr
MARIO ch có th đi ti n lên phía tr ỉ có 1 nhà vệ sinh, nên không ai b ếp ư c ch không th lùi l i khi đi trên c c đ qua sông ứng ạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng Cu Tý nhà ta đã r t nhi u l n qua đ ất thiết phải ề dễ ầu hàng) đứng ượi c sông, vì c u là m t game th siêu h ng Tuy nhiên, l n này ậy tại bất k ộ (v ủa N ạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ầu hàng) đứng c u l i n y sinh ý nghĩ là ph i qua sông theo m t cách th t đ c đáo đ cho đám b n ph i thán ậy tại bất k ạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ải xếp hàng từ tối hôm tr ải xếp hàng từ tối hôm tr ộ (v ậy tại bất k ộ (v ạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ải xếp hàng từ tối hôm tr ph c, vì v y c u mu n bi t có bao nhiêu cách đ qua đ ậy tại bất k ậy tại bất k ối hôm tr ếp ượi c sông, t đó m i ch n ra cách đ c đáo ừ 1 đến N tính từ đầu hàng) đứng ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ộ (v nh t ất thiết phải
B n hãy l p trình, tr l i câu h i giúp Cu Tý ạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ậy tại bất k ải xếp hàng từ tối hôm tr ời hâm mộ (v ỏng nếp
D li u: ữ liệu: ệu: Vào t file văn b n ừ 1 đến N tính từ đầu hàng) đứng ải xếp hàng từ tối hôm tr MARIO.INP:
Dòng 1: Ch a s nguyên d ứng ối hôm tr ương ứng bị lật do động ng N (1 ≤ N ≤ 100)
Dòng 2: ch a N s nguyên A ứng ối hôm tr 1 , A 2 , , A N, v i A i {0, 1, 2} Trong đó
Ai = 0: N u c c i là c c t t ếp ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ối hôm tr
Ai = 1: N u c c i là c c lung lay ếp ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng
Ai = 2: N u c c i là c c b m c ếp ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ị trí trước đó V
sông.
Ví dụ:
4 0 1 2 0
+ Cách 2: T b bên trái b ừ 1 đến N tính từ đầu hàng) đứng ời hâm mộ (v ư c đ n c c 1, t c c 1 b ếp ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ừ 1 đến N tính từ đầu hàng) đứng ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ư c sang c c 2 t c c 2 nh y sang c c 4, t ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ừ 1 đến N tính từ đầu hàng) đứng ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ải xếp hàng từ tối hôm tr ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ừ 1 đến N tính từ đầu hàng) đứng c c 4 b ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ư c sang b bên ph i ở lại hàng, mặc dù không nhất thiết phải ải xếp hàng từ tối hôm tr
Ví d 2: MARIO không th qua sông vì: t b có th đ n c c 1, c c 2: ừ 1 đến N tính từ đầu hàng) đứng ời hâm mộ (v ếp ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng + T c c 1, không th sang c c 3 (vì c c 3 m c), không th sang c c 4 (v c c 4 lung lay nên ch ừ 1 đến N tính từ đầu hàng) đứng ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ị trí trước đó V ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ỉ có 1 nhà vệ sinh, nên không ai b có th b ư c t c c 3 sang) ừ 1 đến N tính từ đầu hàng) đứng ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng
+ T c c 2, không th sang c c 3 (vì c c 3 m c), không th sang c c 4 (v c c 4 lung lay nên ch ừ 1 đến N tính từ đầu hàng) đứng ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ị trí trước đó V ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ỉ có 1 nhà vệ sinh, nên không ai b có th b ư c t c c 3 sang), không th sang c c 5 (v ừ 1 đến N tính từ đầu hàng) đứng ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ì c c 5 m c) ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng
* Ghi chú: Có 20% test N <= 10, 30% test <= 30, 70% test N <= 70
-H t - ếp
Trang 14H ướng dẫn giải ng d n gi i ẫn giải ả Bài 1 Hàng đ i ợi
Cách 1: D dàng s d ng cách làm duy t trâu bò v i đ ph c t p là O(N*K) Ăn đ ễ ệ sinh công cộng Mỗi khi có nhu cầu, người đó sẽ bước ra ộ (v ứng ạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ượi c 60% test Cách 2:
M ng T[1 N] đ l u tên c a ng ải xếp hàng từ tối hôm tr ư ủa N ười hâm mộ (v i đ ng tr ứng ư c ng ười hâm mộ (v i i, t c là T[i] = j n u ng ứng ếp ười hâm mộ (v i j đ ng ứng ngay tr ư c ng ười hâm mộ (v i i Kh i t o T[i] = i – 1, riêng T[1] b ng 0 v ở lại hàng, mặc dù không nhất thiết phải ạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ằng người có tên A bước ra khỏi hàng đợi và trở lại hàng đợi ì không có ai đ ng tr ứng ư c 1 M ng S[1 N] đ l u tên c a ng ải xếp hàng từ tối hôm tr ư ủa N ười hâm mộ (v ứng i đ ng sau ng ười hâm mộ (v i i, t c là S[i] = j n u ng ứng ếp ười hâm mộ (v i j đ ng ngay ứng
sau ng ười hâm mộ (v i i Kh i t o S[i] = i + 1, riêng S[N] = 0 v ở lại hàng, mặc dù không nhất thiết phải ạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ì không có ai đ ng sau N ứng
Xét m t l ộ (v ượi t đi gi i quy t nhu c u d ng A B ải xếp hàng từ tối hôm tr ếp ầu hàng) đứng ạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng
Khi A ra ngoài kh i hàng thì: ỏng nếp + S[T[A]] = S[A] (ng ười hâm mộ (v ứng i đ ng sau ng ười hâm mộ (v i T[A] không c òn là ng ười hâm mộ (v i A n a mà là ng ữa mà là người S[A]) ười hâm mộ (v i S[A]) + T[S[A]] = T[A] (ng ười hâm mộ (v ứng i đ ng tr ư c ng ười hâm mộ (v i S[A] không c òn là ng ười hâm mộ (v i A n a mà là ng ữa mà là người S[A]) ười hâm mộ (v i T[A]) Khi ng ười hâm mộ (v i A đ ng vào hàng ngay tr ứng ư c ng ười hâm mộ (v i B th ì:
+ T[A] = T[B] (ng ười hâm mộ (v ứng i đ ng tr ư c A sẽ là ng ười hâm mộ (v ứng i đ ng tr ư c B cũ) + S[A] = B (Sau ng ười hâm mộ (v i A chính là B)
+ S[T[B]] = A (sau ng ười hâm mộ (v i T[B] chính là ng ười hâm mộ (v i A) + T[B] = A (tr ư c B chính là A)
Cu i cùng ch c n duy t l i t 1 t i N và đ a ra kq T[i] và S[i] ối hôm tr ỉ có 1 nhà vệ sinh, nên không ai b ầu hàng) đứng ệ sinh công cộng Mỗi khi có nhu cầu, người đó sẽ bước ra ạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ừ 1 đến N tính từ đầu hàng) đứng ư Đ ph c t p là O(K) ộ (v ứng ạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng
N u i là c c lung lay thì F[i] = F[i-1] ; ếp ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng
N u i là c c t t thì sẽ có 2 tr ếp ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ối hôm tr ười hâm mộ (v ng h p sau: ợi
N u c c i – 3 là c c lung lay thì F[i] = F[i-1] + F[i-2] ếp ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng ọ nên tạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng
Trong tr ười hâm mộ (v ng h p ng ợi ượi ạm đặt tên họ từ 1 đến N tính từ đầu hàng) đứng c l i th ì F[i] = F[i-1] + F[i-2] + F[i-3] N u x lý v i ki u d li u integer sẽ đ ếp ữa mà là người S[A]) ệ sinh công cộng Mỗi khi có nhu cầu, người đó sẽ bước ra ượi c 20% test
N u x lý v i ki u d li u Longint sẽ đ ếp ữa mà là người S[A]) ệ sinh công cộng Mỗi khi có nhu cầu, người đó sẽ bước ra ượi c 30% test N u x lý v i ki u d li u Qword sẽ đ ếp ữa mà là người S[A]) ệ sinh công cộng Mỗi khi có nhu cầu, người đó sẽ bước ra ượi c 70% test N u x lý v i s nguyên l n thì sẽ đ ếp ối hôm tr ượi c 100% test
Trang 15Đề đề xuất Môn tin học 10
Thái Nguyên - Năm 2013
-
Tên bài
Tên file chương trình
Tên file dữ liệu
vào
Tên file dữ liệu ra
Bài 1
Ghép các số nguyên tố
Bài 2
Bài 3
Các đường tròn KRUZNICE.PAS KRUZNICE.INP KRUZNICE.OUT
Bài 1 GHÉP CÁC SỐ NGUYÊN TỐ
Giả sử C là dãy các số nguyên tố tăng dần: C =(2, 3, 5, 7, 11, 13, 17, 19,…)Từ dãy C, ta lập dãy D gồm các số là ghép của số hạng có thứ tự lẻ vói số hạng đứng ngay sau nó của dãy C: D=(23, 57, 1113, 1719,…)
Bàng cách xoá đi khỏi dãy D các số hạng không phải là số nguyên tố ta nhận được dãy E.Bài toán đặt ra là: cho truớc một số nguyên dương N không lớn hơn 500, Hãy tìm số hạngthứ N của dãy E
Dữ liệu vào được cho bởi file văn bản GNT.INP gồm một số dòng, mỗi dòng ghi một số N
Kết quả: Ứng với mỗi số N đọc được từ file GNT.INP, ghi ra file văn bản GNT.OUT số thứ N của dãy E
Ví dụ:
1 2
23 3137 Bài 2 THUÊ MÁY TÍNH
Sau khi vào đội tuyển, Long bỗng học sút hẳn đi Thám tử tư của khối điều tra và biếtđược Long mở một công ty Tin học với tên rất hấp dẫn: AttoSoft (Micro = 10-6, Pico = 10- 12, Atto = 10-18) Long chỉ có một máy tính