1. Trang chủ
  2. » Cao đẳng - Đại học

DEHDCMON TINHSGTHPT20152016

8 42 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Nội dung

Mỗi người nông dân chỉ có một số lượng trứng nhất định mỗi ngày, nhà hàng có thể mua một số trứng từ mỗi người nông dân, ít hơn hoặc bằng số lượng trứng của mỗi người nông dân đó.. Biết [r]

(1)SỞ GIÁO DỤC VÀ ĐÀO TẠO LÀO CAI KÌ THI CHỌN HỌC SINH GIỎI CẤP TỈNH THPT NĂM HỌC 2015 - 2016 MÔN THI: TIN HỌC Ngày thi: 12 tháng 10 năm 2015 ĐỀ THI CHÍNH THỨC (Thời gian làm bài 180 phút không kể thời gian giao đề) Đề thi gồm 03 trang TỔNG QUAN BÀI THI Tên bài Câu 1: Dãy số Câu 2: EGG Câu 3: Phần thưởng Tệp chương trình Primemax.* Egg.* J_bonus.* Tệp liệu vào Tệp liệu PRIMEMAX.INP PRIMEMAX.OUT EGG.INP EGG.OUT J_BONUS.INP J_BONUS.OUT Điểm Time 7 1s 1s 1s Phần mở rộng tệp chương trình đặt tùy theo ngôn ngữ lập trình sử dụng (ngôn ngữ Pascal tương ứng *.pas, ngôn ngữ C là *.cpp) Câu 1: Dãy số Cho dãy số nguyên a1, a2, …, an với  109 , n  105 Tìm số nguyên tố lớn dãy Số nào xuất nhiều dãy Dữ liệu: Đầu vào cho tệp: prime.inp - Dòng đầu tiên là số n - Dòng thứ hai là n số nguyên số cách dấu cách Đầu cho tệp: prime.out - Dòng thứ là số nguyên tố lớn dãy, không có số nguyên tố thì in - Dòng thứ hai là số xuất nhiều dãy, có nhiều số có số lần xuất thì in số đầu tiên Ví dụ: PRIMEMAX.INP 16 0 0 1 1 -1 -1 -1 -1 4 4 11873 5737 9269 7956 0 5737 11873 PRIMEMAX.OUT Trong đó: - Có 70% số test ứng với 70% số điểm bài có n  103 - Có 30% số test ứng với 30% số điểm bài có n  105 (2) Câu 2: Egg (7 điểm) Nhà hàng Pizza_Egg có số nông dân chuyên cung cấp trứng và người có giá bán khác Mỗi người nông dân có số lượng trứng định ngày, nhà hàng có thể mua số trứng từ người nông dân, ít số lượng trứng người nông dân đó Biết số lượng trứng ngày mà nhà hàng cần, giá trứng và số lượng trứng mà người nông dân có Hãy tính số tiền ít mà nhà hàng cần để mua số trứng đó Giả thiết tổng số trứng người nông dân đủ đáp ứng nhu cầu nhà hàng Dữ liệu: INPUT: EGG.INP Dòng đầu tiên chứa hai số nguyên N,M N là số trứng mà nhà hàng cần ngày (  N  100000 ), M là số người nông dân cung cấp trứng cho nhà hàng (  M  5000 ) Dòng thứ i M dòng tiếp theo, chứa hai số nguyên Ai và Bi cách dấu cách Ai (  Ai  5000 ) là giá trứng người nông dân i; Bi (  Bi  50000 ) là số trứng tối đa mà người nông dân có thể bán cho nhà hàng OUTPUT: EGG.OUT Ghi trên dòng số nguyên là số tiền nhỏ mà nhà hàng có thể mua trứng ngày Ví dụ: EGG.INP EGG.OUT 50 5 30 10 40 10 80 30 250 Trong đó: - Có 70% số test ứng với 70% số điểm bài có  N  1000 - Có 30% số test ứng với 30% số điểm bài có  N  100000 Câu 3: Phần thưởng Để giúp học sinh thư giãn sau thi căng thẳng, Ban tổ chức đã đưa trò chơi trên lưới ô vuông Phần thưởng trao cho người có điểm cao Cách chơi sau: Sân chơi là hình chữ nhật đơn vị có kích thước mxn Học sinh chọn ô cột và bước vào ô đó Sau đó bước vào ô cột liền kề bên phải theo hướng chéo lên ô sang phải ô chéo ô Tức là, học sinh ô có tọa độ (i,j) thì có thể bước sang các ô có tọa độ (i-1,j+1) (i,j+1) (i+1,j+1) (3) Biết cách tính điểm bước vào ô có tọa độ (i,j) sau: Nếu a[i,j] là số không âm thì tổng điểm học sinh tăng lên a[i,j], ngược lại a[i,j] là số âm thì tổng điểm học sinh giảm |a[i,j]| lần Khi học sinh bước đến ô cột N thì sau tính điểm xong dừng lại, hoàn thành lượt chơi Ví dụ, với hình bên ta có nhiều cách từ cột đến cột - Đi từ vào ô (1,1) >(2,2) >(1,3) >(1,4) >(1,5) 43 6 thì tổng điểm bằng:  4.167 - Đi từ vào ô (1,1) >(2,2) >(3,3) >(3,4) >(3,5) thì tổng điểm bằng: 43    5.333 -2 -3 -2 -2 -9 -3 -3 Yêu cầu: Hãy tìm cách để có điểm cao Dữ liệu vào: Từ tệp văn ‘J_BONUS.INP’ gồm nhiều dòng:  Dòng 1: Ghi hai số nguyên dương m, n là kích thước lưới ô vuông M < 300, N < 300  M dòng tiếp theo, dòng ghi N số nguyên a[i,j], với a[i,j] < 105 Kết quả: Ghi tệp văn ‘J_BONUS.OUT’ điểm cao tìm Lấy chính xác đến số thập phân J_BONUS.INP J_BONUS.OUT 35 5.333 -2 -3 -2 -2 -9 -3 -3 Trong đó: - Có 40% số điểm câu với m < 100; n < 100; a[i,j] < 300 - Có 60% số điểm câu với m > 290 ; n > 290; a[i,j] < 100000 -Hết Họ tên thí sinh:………………………… SBD:…………………………………… - Giám thị số 1:……………….…… Giám thị số 2:………………….… Cán coi thi không giải thích gì thêm Thí sinh không sử dụng tài liệu (4) - SỞ GIÁO DỤC VÀ ĐÀO TẠO - LÀO CAI - - CHÍNH THỨC ĐÁP ÁN – THANG ĐIỂM ĐỀ THI CHỌN HỌC SINH GIỎI CẤP TỈNH NĂM HỌC 2015 - 2016 Môn: TIN HỌC (Đáp án- thang điểm gồm có 05 trang) Cách 1: Giám khảo cho chạy chương trình thí sinh với file input và so sánh với file out đáp án, đúng thì cho điểm theo thang điểm không đúng thì không cho điểm Cách 2: Copy bài thí sinh vào chương trình chấm tự động THEMIS có sẵn đĩa CD, chạy chương trình chấm - Chú ý kiểm tra bài luôn cho kết và bài bị điểm Câu 1: Dãy số - Primemax (6 điểm) Có 10 test =10 x 0.6 = điểm Câu Egg (7điểm) Có 10 test=10x 0.7= điểm Câu 3: Phần thưởng (7 điểm) Có 20 test = 20 x 0.35 = điểm Chương trình tham khảo Câu 1: Const fi='primemax.inp'; fo='primemax.out'; Maxn=100000; Type mang= array[1 maxn] of longint; Var a: mang; n,i,m:longint; f1,f2:text; Function nt(n:longint):boolean; var i:longint; Begin nt:=false; if n<2 then exit; for i:=2 to round(sqrt(n)) (5) if n mod i=0 then exit; nt:=true; End; Procedure ntmax; var d,max:longint; Begin Max:=0; for i:=1 to n if nt(a[i]) and (a[i]>max) then max:=a[i]; Writeln(f2,max); End; Procedure soxhmax; Var j,max,luu,d:longint; Begin max:=-maxint; for i:=1 to n begin d:=1; for j:=i+1 to n if a[i]=a[j] then d:=d+1; if d>max then Begin max:=d; luu:=a[i]; End; End; Writeln(f2,luu); End; BEGIN Assign(f1,fi); reset(f1); readln(f1,n); for i:=1 to n read(f1,a[i]); Assign(f2,fo); rewrite(f2); ntmax; soxhmax; Close(f1);Close(f2); END Câu 2: (6) program Egg; const FI ='egg.inp'; FO = 'egg.out'; MAX_N = 2000000; var n, m, moneys : longint; a,b : array[1 MAX_N] of longint; procedure read_data; var i : longint; f : text; begin assign(f, FI); reset(f); readln(f, m, n); for i := to n readln(f, a[i], b[i]); close(f); end; procedure qSort(l, r: longint); var i, j, x, y : longint; begin i := l; j := r; x := a[(l+r) div 2]; repeat while a[i] < x i := i + 1; while x < a[j] j := j - 1; if i <= j then begin y := a[i]; a[i] := a[j]; a[j] := y; y := b[i]; b[i] := b[j]; b[j] := y; i := i + 1; j := j - 1; end; until i > j; if l < j then qSort(l, j); if i < r then qSort(i, r); end; procedure process; var x, i : longint; begin (7) if n > then qSort(1, n); moneys := 0; for i := to n begin if m >= b[i] then x := b[i] else x := m; moneys := moneys + a[i] * x; m := m - x; if m = then break; end; end; procedure write_result; var f : text; begin assign(f, FO); rewrite(f); writeln(f, moneys); close(f); end; begin read_data; process; write_result; end Câu 3: Uses math; Const fi='J_BONUS.INP'; fo='J_BONUS.OUT'; Nmax= 303; Var A: Array[0 Nmax,0 Nmax] Of Longint; C: Array[0 Nmax,0 Nmax] Of Real; Res: Real=-1e18; m,n,i0: Longint; Procedure Doctep; Var i,j: Longint; (8) Begin Assign(input,fi); Reset(input); Readln(m,n); For i:=1 to m For j:=1 to n Read(a[i,j]); Close(input); End; Function maxx(x,y,z: Real): Real; Begin maxx:=max(max(x,y),z); End; Procedure Xuli; Var i,j: Longint; Begin For j:=1 to n Begin a[0,j]:= low(longint); a[m+1,j]:= low(longint); End; For i:=1 to m C[i,1]:=a[i,1]; For j:=2 to n for i:=1 to m if a[i,j]>=0 then C[i,j]:= maxx(c[i-1,j-1],c[i,j-1],c[i+1,j-1])+a[i,j] else C[i,j]:= maxx(c[i-1,j-1],c[i,j-1],c[i+1,j-1])/abs(a[i,j]); For i:=1 to m if res<c[i,n] then res:=c[i,n]; End; Procedure Ghikq; var i,j: longint; Begin Assign(output,fo); Rewrite(output); Write(res:0:3); Close(output); End; Begin Doctep; Xuli; Ghikq; End - (9)

Ngày đăng: 17/09/2021, 18:24

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN