Đề thi đề nghị môn Tin học Lớp 10 Kỳ thi Olympic 23-3 Tỉnh ĐăkNông lần thứ 5 - Năm học 2017-2018 - Trường THPT Krông Nô

Câu 1: (6 điểm) RO BOT (Đặt tên bài làm là Robot.pas)

Cho lưới ô gồm n dòng m cột. Một con Robot chỉ có thể đi lên (L) hoặc sang phải (P). Giả sử con Robot đang đứng ở ô dưới cùng bên trái của lưới ô hãy chỉ ra các cách mà con robot có thể đi để đến ô trên cùng bên phải của lưới ô.

  • Dữ liệu vào cho ở File ‘Robot.inp’ gồm 1 dòng chứa 2 số nguyên dương n và m.
  • Dữ liệu ra ghi ở File ‘Robot.out’ gồm tất cả các phương án đi của Robot, mỗi phương án được ghi trên 1 dòng. Dòng cuối cùng ghi 1 số là tổng số phương án tìm được.

Ví dụ:

doc 15 trang Hữu Vượng 31/03/2023 8880
Bạn đang xem tài liệu "Đề thi đề nghị môn Tin học Lớp 10 Kỳ thi Olympic 23-3 Tỉnh ĐăkNông lần thứ 5 - Năm học 2017-2018 - Trường THPT Krông Nô", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • docde_thi_de_nghi_mon_tin_hoc_lop_10_ky_thi_olympic_23_3_tinh_d.doc

Nội dung text: Đề thi đề nghị môn Tin học Lớp 10 Kỳ thi Olympic 23-3 Tỉnh ĐăkNông lần thứ 5 - Năm học 2017-2018 - Trường THPT Krông Nô

  1. PLLPPLPLL PLLPPPLLL PLPLLLLPP PLPLLLPLP PLPLLLPPL PLPLLPLLP PLPLLPLPL PLPLLPPLL PLPLPLLLP PLPLPLLPL PLPLPLPLL PLPLPPLLL PLPPLLLLP PLPPLLLPL PLPPLLPLL PLPPLPLLL PLPPPLLLL PPLLLLLPP PPLLLLPLP PPLLLLPPL PPLLLPLLP PPLLLPLPL PPLLLPPLL PPLLPLLLP PPLLPLLPL PPLLPLPLL PPLLPPLLL PPLPLLLLP PPLPLLLPL PPLPLLPLL PPLPLPLLL PPLPPLLLL PPPLLLLLP PPPLLLLPL PPPLLLPLL PPPLLPLLL PPPLPLLLL PPPPLLLLL 126 6 6 LLLLLPPPPP LLLLPLPPPP LLLLPPLPPP LLLLPPPLPP LLLLPPPPLP LLLLPPPPPL LLLPLLPPPP LLLPLPLPPP LLLPLPPLPP LLLPLPPPLP LLLPLPPPPL LLLPPLLPPP LLLPPLPLPP LLLPPLPPLP LLLPPLPPPL LLLPPPLLPP 5 LLLPPPLPLP LLLPPPLPPL LLLPPPPLLP LLLPPPPLPL LLLPPPPPLL LLPLLLPPPP LLPLLPLPPP LLPLLPPLPP LLPLLPPPLP LLPLLPPPPL LLPLPLLPPP LLPLPLPLPP LLPLPLPPLP LLPLPLPPPL LLPLPPLLPP LLPLPPLPLP LLPLPPLPPL 4
  2. LPPLPLPLPL LPPLPLPPLL LPPLPPLLLP LPPLPPLLPL LPPLPPLPLL LPPLPPPLLL LPPPLLLLPP LPPPLLLPLP LPPPLLLPPL LPPPLLPLLP LPPPLLPLPL LPPPLLPPLL LPPPLPLLLP LPPPLPLLPL LPPPLPLPLL LPPPLPPLLL LPPPPLLLLP LPPPPLLLPL LPPPPLLPLL LPPPPLPLLL LPPPPPLLLL PLLLLLPPPP PLLLLPLPPP PLLLLPPLPP PLLLLPPPLP PLLLLPPPPL PLLLPLLPPP PLLLPLPLPP PLLLPLPPLP PLLLPLPPPL PLLLPPLLPP PLLLPPLPLP PLLLPPLPPL PLLLPPPLLP PLLLPPPLPL PLLLPPPPLL PLLPLLLPPP PLLPLLPLPP PLLPLLPPLP PLLPLLPPPL PLLPLPLLPP PLLPLPLPLP PLLPLPLPPL PLLPLPPLLP PLLPLPPLPL PLLPLPPPLL PLLPPLLLPP PLLPPLLPLP PLLPPLLPPL PLLPPLPLLP PLLPPLPLPL PLLPPLPPLL PLLPPPLLLP PLLPPPLLPL PLLPPPLPLL PLLPPPPLLL PLPLLLLPPP PLPLLLPLPP PLPLLLPPLP PLPLLLPPPL PLPLLPLLPP PLPLLPLPLP PLPLLPLPPL PLPLLPPLLP PLPLLPPLPL PLPLLPPPLL PLPLPLLLPP PLPLPLLPLP PLPLPLLPPL PLPLPLPLLP PLPLPLPLPL PLPLPLPPLL 6
  3. PPPPLLPLLL PPPPLPLLLL PPPPPLLLLL 252 2 2 LP 6 PL 2 Chương trình tham khảo Program Robot; Uses Crt; Const Max = 10; Fi = 'Robot.inp'; Fo = 'Robot.out'; D : Array [1 2] of -1 1 = (-1,0); C : Array [1 2] of -1 1 = (0,1); Var F,g : Text; A : Array[1 Max,1 Max] of Char; Luu : Array[1 max*2] of char; x,y,k,n,m : Integer; dem: longint; Procedure DocFi; Begin Assign(F,Fi); Reset(F); Readln(F,N,M); Close(F); End; Procedure Hien; Var i: integer; Begin Assign(g,Fo); Append(g); For i:=1 to max*2 do if luu[i]=' ' then break else Write(g,Luu[i]); writeln(g); Close(g); End; Procedure Try(k:Integer;x,y: Integer); Var i,u,v : Integer; Begin If (x=1) and (y=m) then Begin Inc(dem); Hien End Else For i:=1 to 2 do Begin u:=x+D[i]; v:=y+C[i]; If (u in [1 n]) and (v in [1 m]) and (A[u,v]='0') then Begin A[u,v]:='1'; If u=x-1 then Luu[k]:='L' else Luu[k]:='P'; try(k+1,u,v); A[u,v]:='0'; End; End; End; 8
  4. Mã số câu: Câu 2: (7 điểm) (Đặt tên: HCN.pas) Cắt hình chữ nhật Có một hình chữ nhật MxN ô, mỗi lần ta được phép cắt một hình chữ nhật thành hai hình chữ nhật con theo chiều ngang hoặc chiều dọc và lại tiếp tục cắt các hình chữ nhật con cho đến khi được hình vuông thì dừng. Yêu cầu: Tìm cách cắt hình chữ nhật MxN thành ít hình vuông nhất. Dữ liệu vào cho ở File ‘HCN.inp’: Gồm một dòng chứa hai số M, N (1≤M,N≤500) Dữ liệu ra file 'HCN.out': Gồm một dòng là kết quả số lượng hình vuông ít nhất. Ví dụ: HCN.inp HCN.out 10 2 5 5 6 5 Chấm theo test, mỗi test đúng được 01 điểm Test HCN.inp HCN.out 1 10 2 5 2 5 6 5 3 10 1 10 4 10 10 1 5 10 20 2 6 10 200 20 7 101 500 16 Chương trình tham khảo const MAX =500; fi ='hcn.inp'; fo ='hcn.out'; var f :array[1 MAX,1 MAX]of longint; m,n :longint; procedure tinh(m,n:longint); var a,b,c,res:longint; begin for a:=1 to m do for b:=1 to n do begin if a=b then begin f[a,b]:=1; continue; end; res:=a*b; for c:=1 to a-1 do if res>(f[c,b]+f[a-c,b]) then res:=(f[c,b]+f[a-c,b]); for c:=1 to b-1 do if res>(f[a,c]+f[a,b-c]) then res:=(f[a,c]+f[a,b-c]); f[a,b]:=res; end; end; BEGIN assign(input,fi); reset(input); assign(output,fo); rewrite(output); readln(m,n); tinh(m,n); writeln(f[m,n]); close(input); close(output); END. 10
  5. 2 1 1 3 2 3 4 2 4 5 5 6 7 5 6 4 4 2 4 -1 4 2 1 3 1 3 2 3 2 4 4 2 4 1 4 2 1 3 4 2 1 4 1 3 2 3 3 4 10 2 4 -1 9 2 1 2 3 3 4 5 5 4 6 5 7 6 8 7 9 8 19 9 7 3 5 1 8 3 4 7 2 1 6 5 7 2 1 3 2 1 6 3 4 1 4 4 7 5 6 1 6 5 2 5 -1 5 2 1 7 1 3 2 3 3 4 1 5 12
  6. d:=d-1; tham[j]:=0 end; end; end; BEGIN khoitao; nhap; tham[p]:=1; luu[1]:=P; D:=1; assign(f,'SunGroup.out'); rewrite(f); Buoc(P); if kt_di=false then write(f,-1); close(f); END. 14