HDC thi HSG11 2012 2013

4 194 0
HDC thi HSG11 2012 2013

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

Thông tin tài liệu

Së GD&§T Qu¶ng b×nh kú thi CHäN häc sinh giái líp 11 THPT n¨m häc 2012 - 2013 M«n thi: tin häc híng dÉn chÊm I- Phương pháp: - Giám khảo tạo liệu vào, tính toán kết Thực chương trình học sinh so sánh kết - Giám khảo sử dụng chương trình gợi ý để tính toán kết liệu vào - Đối với câu 1: Giám khảo phải tạo 06 test, chương trình học sinh 01 test giám khảo cho 0.5 điểm Trong 06 test giám khảo phải tạo 01 test có Q-P = 105, 01 test giá trị P, Q > 65535 - Đối với câu 2: Giám khảo phải tạo 07 test, chương trình học sinh 01 test giám khảo cho 0.5 điểm Trong 07 test giám khảo phải tạo 01 test có P, Q > 20000 - Đối với câu 3: + Có thể có nhiều kết đúng, học sinh đưa kết khác với kết giám khảo cho điểm tối đa + Giám khảo phải tạo 05 test, chương trình học sinh 01 test giám khảo cho 0.7 điểm + Đối với test: Nếu học sinh đưa số lượng phần tử dãy chung giám khảo cho 0.3 điểm, đưa dãy chung giám khảo cho 0.2 điểm, đưa số phần tử dãy A dãy B ban đầu giám khảo cho 0.2 điểm Tổng điểm test 0.7 điểm II- Chương trình gợi ý: Câu 1: (3,0 điểm) Tìm số Program Tim_so; Const fi='TIMSO.INP'; fo='TIMSO.OUT' ; Var P,Q:longint; Time:Longint; Times:Longint absolute 0:$46C; Function NT(K:longint):Boolean; Var Can,i:Longint; Begin If (K=2) or (K=3) then Begin NT:=True;Exit; End; If (K0 then Begin Writeln(f,Top+1); Write(f,C^[0],' '); End Else Writeln(f,Top); For i:=1 to Top Write(f,C^[i], ' '); Close(f); Dispose(C); End; BEGIN Read_Data; Init; Process; Write_Data; END Câu 3: (3,5 điểm) Dãy chung dài Program Day_con; Const fi='DAYCON.INP'; fo='DAYCON.OUT'; MaxN=101; Type mmc=Array[0 MaxN] of Longint; mhc=Array[0 MaxN] of mmc; Var A,B,C:mmc; L:mhc; N,M,K:Longint; Time:Longint; Times: Longint absolute 0:$46C; Procedure Read_Data; Var f:Text; i:Longint; Begin Assign(f,fi); Reset(f); Readln(f,N); For i:=1 to N Read(f,A[i]); Readln(f,M); For i:=1 to M Read(f,B[i]); Fillchar(L,Sizeof(L),0); Close(f); End; Procedure Solution; Var i,j:Longint; Begin For i:=1 to N For j:=1 to M Begin if A[i] = B[j] then L[i,j]:=L[i-1,j-1]+1 Else Begin L[i,j]:=L[i,j-1]; If L[i-1,j] > L[i,j-1] then L[i,j]:=L[i-1,j]; End; End; End; Procedure Write_Data; 3/4 Var f:Text;i,j,Top:Longint;LA,LB:mmc; Begin Assign(f,fo); Rewrite(f); Writeln(f,L[N,M]); Top:=0; i:=N;j:=M; While (i>0) and (j>0) Begin if A[i] = B[j] then Begin inc(Top); LA[Top]:=i; LB[Top]:=j; dec(i); dec(j); End Else if L[i-1,j] > L[i,j-1] then dec(i) Else dec(j); End; For i:=Top Downto Write(f,A[LA[i]],' '); Writeln(f); For i:=Top Downto Write(f,LA[i],' '); Writeln(f); For i:=Top Downto Write(f,LB[i],' '); Close(f); End; BEGIN Time:=Times; Read_Data; Solution; Write_Data; Writeln((Times-Time)/18.2:0:0); Readln; END 4/4

Ngày đăng: 06/01/2017, 13:12

Từ khóa liên quan

Mục lục

  • I- Phương pháp:

  • II- Chương trình gợi ý:

Tài liệu cùng người dùng

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

Tài liệu liên quan