1. Trang chủ
  2. » Giáo Dục - Đào Tạo

De va dap an thi HSG mon tin hoc tinh thanh hoa nam hoc 2018 - 2019

16 1,6K 7

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 16
Dung lượng 342,69 KB

Nội dung

Đề thi chính thức môn Tin học Kỳ thi HSG tỉnh Thanh Hóa năm 20182019. Chương trình giải các bài toán trong đề viết bằng NLT Pascal. Bộ test chấm chi tiết, chỉ cần tải về chấm bằng chương trình chấm điểm tự động Themis là biết kết quả

SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HOÁ KỲ THI HỌC SINH GIỎI CẤP TỈNH Năm học: 2018-2019 ĐỀ CHÍNH THỨC Môn thi: Tin học - Lớp 11 THPT Thời gian: 180 phút (không kể thời gian giao đề) Ngày thi: 21/03/2019 Đề có 05 câu, gồm 02 trang Số báo danh …………………… … Tổng quan thi: Tên File chương trình File liệu vào File kết Bài Tổng số hoàn hảo BAI1.* BAI1.INP BAI1.OUT Bài Cặp số nguyên BAI2.* BAI2.INP BAI2.OUT Bài Đếm xâu BAI3.* BAI3.INP BAI3.OUT Bài Giai thừa BAI4.* BAI4.INP BAI4.OUT Bài Dãy BAI5.* BAI5.INP BAI5.OUT Dữ liệu vào đắn, không cần phải kiểm tra Trong file liệu vào/ra, liệu dòng cách dấu cách Dấu (*) tên file chương trình biểu thị file tùy thuộc vào NNLT sử dụng ('pas' NNLT PASCAL, ‘c’ NNLT C, ) Bài (6 điểm): Tổng số hồn hảo Số hồn hảo số có tổng ước số trừ nó u cầu: Tính tổng số hồn hảo nhỏ N Dữ liệu vào: Đọc từ tệp BAI1.INP - số nguyên N (1≤ N ≤ 105) Dữ liệu ra: Ghi tệp BAI1.OUT kết tìm Ví dụ: BAI1.INP 30 BAI1.OUT 34 (có số hồn hảo nhỏ 30 28; 6+28=34) Bài (5 điểm): Cặp số ngun Bài tốn tìm ước chung lớn tìm bội chung nhỏ hai tốn Nhưng hơm thầy giáo cho lớp biết L ước chung lớn G bội chung nhỏ số nguyên dương Yêu cầu: Tìm số nguyên dương a b có tổng nhỏ cho ước chung lớn a b L, bội chung nhỏ a b G Dữ liệu vào: Đọc từ tệp BAI2.INP gồm số L, G (1≤ L0) and (b>0) if a>b then a:=a mod b else b:=b mod a; UCLN:=a+b; end; {===============================} begin assign(f,fi); reset(f); readln(f,L,G); close(f); m:=G div L; min:=L+G; for k1:=1 to trunc(sqrt(m)) if m mod k1=0 then begin k2:=m div k1; if UCLN(k1,k2)=1 then begin a:=k1*L; b:=k2*L; if min>a+b then min:=a+b; end; end; assign(f,fo); rewrite(f); write(f,a,' ',b); close(f); end Có 10 Test, test 0.5 điểm Test 01 02 03 04 05 06 07 08 09 10 BAI2.INP 24 456 434 68 2584 36 2952 48 3936 54 2268 464 38976 3000 798000 2500 935000 BAI2.OUT 12 24 114 14 62 136 1292 72 1476 96 1968 324 378 3248 5568 42000 57000 42500 55000 Bài (4 điểm): Đếm xâu Gọi a[i] số chữ in hoa từ kí tự thứ đến kí tự thứ i Gọi b[i] số chữ số từ kí tự đến kí tự thứ i Khi đoạn kí tự từ s[i] đến s[j] có số chữ in hoa nhiều số chữ số a[j]-a[i-1]>b[j]-b[i-1] const fi='BAI3.INP'; fo='BAI3.OUT'; var f:text; s:ansistring; n,i,j,d:longint; a,b:array[0 10000] of longint; begin assign(f,fi); reset(f); readln(f,s); close(f); n:=length(s); a[0]:=0; for i:=1 to n if (s[i]>='A') and (s[i]='0') and (s[i]b[j]-b[i-1] then inc(d); assign(f,fo); rewrite(f); write(f,d); close(f); end Có 16 Test, Test 0.25 điểm (từ test 11 đến test 16 liệu nhiều nên tơi đính kèm) Test 01 02 03 04 05 06 07 08 09 10 BAI3.INP SXJ4MP CR7DGGNN1T4AJW5 S1D9G57J5HO53JR7O5S9 58V07QBT5GI39PVWC8C0VV0RDDA6IE U7MR2BAYMCEOSQ7B3EQYSLRNB6D86AE9PNBANZ5QUW0TU6 1PMM9CD42Y0U0JZR73QXHUMUD4L96KATNPQ51DZIG25MNIIK388X FY1RJ3RL31GTP4HQ 4HE1ZSUUI6ALPXNWH7IKPWE5KBP8L72LRQXIORLHK3O59DDWZ9S ORBI89H5FCV58RWDPEO42RRDQQ0ZBGQ5WSXV2W 9C4WIHU1HPC8B1Q4TC3N2ECDB4UC9V4F6RKE3C0LIK7DTQD5GA5C PTJ5MO18M143YJ4FIMX7HHY1S6XECQ9H1XRD46FKCL ZJAZ1B9Q64FQG15PYD9C58L11C72652WUYN5NBSHK2HG6BN5A0ASR FMPA13DPDSEWR08ZK563YRQN1XWQJYHSVIC0Z9NO3K7JI9818SH1F C01XGG43YS0FEXWZ7K XEVYSCZE08XN0QBO5I84KJJ5S6W23HSD3OGI4F5QFJCYXBIG5R6SUO QQC26IWVE8KNM0PDKO5Y5OIK1KR1NVKWW93QYOV0086YVNFN6 Y5F74VKMWU82SMT8C4U0SYAL39OVV2171DRD7HZNDWHROZ4ROJ TB858173IM0MWYF9MS1M3G1LYEX4LI6JOCZ719T0FT5B8DX082LKR RWZ4KF16RXJEB2DMEXT9W1GL40N5WK5PVMWYUBRZCNAAX404L FEAG3KBEK15L7PMI921Q5O9MXACSSEB5Z51JHCYGGUABZE1FOCN ER5JC5JYW4P14EWQB75CG1XEV418T9QJFJD71BQETX22O25T5FXX5O PHT0W21AO6JELDJ1ZWJBGOGZ0TG617H83JF8HMPJRWVK21K7A6E60 F8D0BIX0YBKBF0YC2F49CII1R3B169EOOQ9G48PRK0X24YYRTL3Y24J R1X1U11OHV52E3F4YKUVCSEXH7Z0K2PU0KWCUT7NNZG4FFDO8R5 P73AWM5M05V1REL1LLE2N8ORTB9815A1K3G6545F46RS6TTN0PI91V ME69K70YZG52MLMK56I3SV4CHNXIWYXU1077K27PDOOAUCD7O36 L7Q0KRT1A3K035LJVL90TG0YL3QMV555418G0X0K8ZX5P7GVINLHU 3HDEF424UG4S98YCHQ4YIWERE4UF5Z7XG0VLX6KRR7ZU51806DJV0 EK7WKCF5V077SSIK0G878GTN48VXZA9JZVEA8ZX26SJP8N1GT5TXV MD8XFB84A7XAN56OQWU7PZFBGJ29RVCDQDM9TK93L12HBBR3AQ CSONZ6AINDX837V3N60QJ87I0TS54DIYO50SE8QO987RQIEF1X4IJV87 40NLYU7RHCE4DZ4FA61B82JDCQ620LIJB85VAVQMUH2ZOK9UI7GI8 LC2U6Q8Q5WL8QJZQYCW1VR6S9KI205VRYSYR090XKJD5IDPCFYT75 GS5TY5VA5BD7VFQVU9KW8LM3RR4I5L7XM63LBX0MKCU1TC0P4H5 GPBWREB7TQ36K1H3ZTGJBHZH3QSOU03H80D6CTPP4PNKSQA9A8L KJUC0O1H58BF9XV6B22G6DFQM1FM3K218SKNPTJTO92PJS2VWUTK3 778R2B57Y9C09DNG22KJHWWV5LCC6L66GX8PLVVO1RCKG5O13MH 04YQS2HZSR0MVGR2K97R5FDI8QKCPI8B3AZVQLA876VATD8NKQ91 6UIH70D0ALOE802XI748K4W79TXK1HOIWOUOFIK250QKOFQW7SISS 638R9O3VTXCSN0FTJ6J22P0ZX8OBE4N52L6OJ3KTSLMDS3IY6LNCOX O5ARWJU79MTD0AY8F0E810HQT7LTBGREUWXL8ODCBRA0D7SVLG BAI3.OUT 18 106 67 399 1026 2185 3891 4249 6966 1992405 L82C374N22K4UBYHFBK5KR5AXRINL2KQ7H4XTJDBBNMGV7U63ZN W4SJS83780HDTLURYEJ4PZ3UHK5WCOS3T6E510A0UJRJSJ2U4EWHH 41CNSU03W1RMYKC56Y3Y4SY9F9FOU96SBZ1ST8KVZ18S28Z9J4BJNT D86LZV8QUQVWSBJLQ9DJFGVH6AVJPQ953OV3CR0FNOCUTT354XL A0HZIUQ08GER89C6U11D3HQ3AKM4C2K5Y0RSBERUQC00S4G6FS6J WC2MNIHLCZAVRULG0NN2CD2KIVX38URC903671K50NH9ZZMHV95 F796RZI54XKBZZ7V1WJN0Z6C6M4JPH8M3R4SJ2Y18DNT7C2BYXY8D DK88L22Z3IDZDH2T7RH1G1BEM8B3DG9TPLFZ8JNWHYOZSZ64LJN62 GN50PS7YSLIWWVY02893KVS0D2WBQNDA2UKK0UU1H505BKBF3W 18O0HY21RDM1T3KN8L515D3T3FDD3GUK9WOFREFZ3DQNU571NX10 NCFUTE2LR81RGNJPUFD3C48R9ZFUF578H6E25G90PJEDRLTQ0K85AP KOWQGZUQ8ST3XHMB (Các test lại liêu vào dài nên để tệp đính kèm) Bài (3 điểm): Giai thừa Nhận xét: Nếu ta lấy số x chia cho 10 ta bỏ chữ số x const fi='BAI4.INP'; fo='BAI4.OUT'; var f:text; n,k,d:longint; x:real; {=============================} BEGIN assign(f,fi); reset(f); readln(f,n); close(f); k:=1; d:=1; x:=1; while d=10 begin x:=x/10; inc(d); end; end; assign(f,fo); rewrite(f); if d=n then write(f,k) else write(f,-1); close(f); END Có 12 Test, Test 0.25 điểm Test 01 BAI4.INP BAI4.OUT 02 03 04 05 06 07 08 09 10 11 12 45 50 7500 5002 6001 7002 8002 9003 9998 38 41 2526 1776 2080 2379 2673 2963 3248 Bài (2 điểm): Dãy Bài ta dùng kĩ thuật duyệt điểm kết hợp với đếm phân phối để làm const fi='BAI5.INP'; fo='BAI5.OUT'; var f:text; a:array[1 400000] of longint; d:array[1 100000000] of longint; k,n,i,j,sl:int64; begin assign(f,fi); reset(f); readln(f,n,k); i:=0; while ib then a:=a mod

Ngày đăng: 25/07/2019, 04:27

TỪ KHÓA LIÊN QUAN

w