Đề và đáp án chi tiết thi học sinh giỏi môn tin học tỉnh thanh hóa từ năm 2017 2018 2019

38 523 2
Đề và đáp án chi tiết thi học sinh giỏi môn tin học tỉnh thanh hóa từ năm 2017 2018 2019

Đ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

Dữ liệu vào là đúng đắn, không cần phải kiểm tra. Trong các file dữ liệu vàora, nếu dữ liệu trên cùng một dòng thì được cách nhau bởi ít nhất 1 dấu cách. Dấu () trong tên file chương trình biểu thị đuôi file tùy thuộc vào NNLT sử dụng (pas đối với NNLT PASCAL, ‘c’ đối với NNLT C,...).

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: 2017-2018 ĐỀ 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: 09/03/2018 Đề 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 Hệ đếm BAI1.* BAI1.INP BAI1.OUT Bài Tìm số nguyên tố BAI2.* BAI2.INP BAI2.OUT Bài Taxi BAI3.* BAI3.INP BAI3.OUT Bài Hamming BAI4.* BAI4.INP BAI4.OUT Bài Số lớn 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, 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 (5 điểm):Hệ đếm Lần tiếp xúc với vấn đề sở Tin học, Mạnh ngỡ ngàng thú vị làm quen với hệ đếm số (Hệ đếm nhị phân) Mạnh nghĩ xâu kí tự bao gồm kí tự ‘0’ ‘1’ biểu diễn số tự nhiên N hệ đếm số đố Hải tìm biểu diễn N hệ đếm số 10 (Hệ đếm thập phân) Ví dụ: Mạnh nghĩ xâu ‘00010101’ biểu diễn số tự nhiên 15 hệ đếm số Yêu cầu: Hãy giúp Hải chuyển xâu kí tự biểu diễn số tự nhiên N hệ đếm số thành xâu biểu diễn N hệ đếm số 10 Dữ liệu vào: Từ tệp văn BAI1.INP gồm dòng chứa xâu S có độ dài khơng q 32 ký tự Dữ liệu ra: Ghi tệp văn BAI1.OUT xâu biểu diễn N hệ đếm số 10 Ví dụ: BAI1.INP 10101110 Bài (5 điểm): Tìm số nguyên tố BAI1.OUT 174 - Tìm tất số P lớn M nhỏ N thỏa mãn điều kiện sau: + Là số nguyên tố + Tổng chữ số P phải chia hết cho k Dữ liệu vào: Từ tệp văn BAI2.INP: Gồm số M, N, k (1 ≤ M,N,k ≤ 106) (các số cách dấu cách) Dữ liệu ra: Ghi tệp văn BAI2.OUT gồm số số lượng số thỏa mãn yêu cầu đầu Ví dụ: BAI2.INP 35 Bài (4 Điểm): Taxi BAI2.OUT BAI2.INP 10 11 BAI2.OUT Trong dịp nghỉ hè bạn học sinh lớp 12 dự định tổ chức dã ngoại đến biển Sầm Sơn taxi Các bạn chia thành n nhóm, nhóm thứ i gồm S i bạn (1 ≤ Si ≤ 4) taxi chở tối đa hành khách Vậy lớp 12 cần thuê taxi để chở nhóm đi, với điều kiện bạn nhóm phải ngồi chung taxi (một taxi chở nhóm trở lên) Dữ liệu vào: Từ tệp văn BAI3.INP gồm: - Dòng đầu chứa số nguyên n (1 ≤ n ≤ 105) (số lượng nhóm học sinh) - Dòng số chứa dãy số nguyên S1, S2, , Sn (1 ≤ Si ≤ 4) Các số nguyên cách dấu cách với Si số học sinh nhóm thứ i Dữ liệu ra: Ghi tệp văn BAI3.OUT số nguyên số lượng tối thiểu xe taxi cần thiết để chở tất học sinh đến nơi Ví dụ: BAI3.INP BAI3.OUT 12433 Bài (3 điểm): Hamming Dãy số nguyên dương tăng dần, ước nguyên tố số không gọi dãy Hamming Như vậy, 10 = 2×5 số dãy Hamming, cịn 26 = 2×13 không thuộc dãy Hamming Phần đầu dãy Hamming 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, Yêu cầu: Cho số nguyên x (1 ≤ x ≤ 109) Hãy xác định số thứ tự x dãy Hamming Dữ liệu vào: Từ tệp văn BAI4.INP: - Dòng chứa số nguyên t – số lượng tests (1 ≤ t ≤ 105), - Các dòng dòng chứa số nguyên x Dữ liệu ra: Ghi tệp văn BAI4.OUT: kết test đưa dịng dạng số ngun thơng báo (-1) khơng tồn số dãy Hamming Ví dụ: BAI4.INP BAI4.OUT 11 1 2 6 -1 7 8 9 10 -1 11 10 12 -1 13 -1 14 Bài (3 điểm): Số lớn Cho số nguyên dương X=X1X2…Xn Y= Y1Y2…Ym (M,N≤200) Hãy tìm số Z=Z1Z2… Zk lớn (Z nhận từ X Y cách xoá số chữ số) Ví dụ: X= 12345 Y= 435012 Thì Z=45 (nhận từ X cách xố X1,X2,X3; nhận từ Y cách xoá Y2 , Y4 , Y , Y6 ) Dữ liệu vào: Từ tệp văn BAI5.INP gồm: - Dòng thứ X - Dòng thứ hai Y Dữ liệu ra: Ghi tệp văn BAI5.OUT số Z kết tốn Ví dụ: BAI5.INP 42572 BAI5.OUT 25 BAI5.INP 12345 BAI5.OUT 123 39258 4351023 Trong đó: có 1/6 số test tồn số Z mà chữ số X Y liên tiếp - Hết 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ố hoàn hảo Số hoà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≤ Ld[1] then d[1]:=0 else d[1]:=d[1]-d[3]; s:=s+d[3]; s:=s+d[2] div 2; if d[2] mod 2=0 then d[2]:=0 else d[2]:=1; Bài (5 điểm): Cặp số nguyên Giả sử A=L*K1 B=L*k2 Do L ước chung lớn A B nên ước chung lớn K1 K2 Vì G bội chung nhỏ A B nên ta có: G= A * B K1* L * K * L = L * K1* K L = L Do G chia hết cho L nên ta có K1*K2=G div L const fi='BAI2.INP'; fo='BAI2.OUT'; var f:text; L,G,a,b,k1,k2,m,min:longint; {================================} Function UCLN(a,b:longint):longint; begin while (a>0) 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); 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 BAI3.INP BAI3.OUT 18 106 67 399 1026 2185 SXJ4MP CR7DGGNN1T4AJW5 S1D9G57J5HO53JR7O5S9 58V07QBT5GI39PVWC8C0VV0RDDA6IE U7MR2BAYMCEOSQ7B3EQYSLRNB6D86AE9PNBANZ5QUW0TU6 1PMM9CD42Y0U0JZR73QXHUMUD4L96KATNPQ51DZIG25MNIIK388X FY1RJ3RL31GTP4HQ 4HE1ZSUUI6ALPXNWH7IKPWE5KBP8L72LRQXIORLHK3O59DDWZ9S 3891 ORBI89H5FCV58RWDPEO42RRDQQ0ZBGQ5WSXV2W 9C4WIHU1HPC8B1Q4TC3N2ECDB4UC9V4F6RKE3C0LIK7DTQD5GA5C 4249 PTJ5MO18M143YJ4FIMX7HHY1S6XECQ9H1XRD46FKCL ZJAZ1B9Q64FQG15PYD9C58L11C72652WUYN5NBSHK2HG6BN5A0ASR 6966 FMPA13DPDSEWR08ZK563YRQN1XWQJYHSVIC0Z9NO3K7JI9818SH1F C01XGG43YS0FEXWZ7K 10 XEVYSCZE08XN0QBO5I84KJJ5S6W23HSD3OGI4F5QFJCYXBIG5R6SUO 1992405 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 L82C374N22K4UBYHFBK5KR5AXRINL2KQ7H4XTJDBBNMGV7U63ZN W4SJS83780HDTLURYEJ4PZ3UHK5WCOS3T6E510A0UJRJSJ2U4EWHH 41CNSU03W1RMYKC56Y3Y4SY9F9FOU96SBZ1ST8KVZ18S28Z9J4BJNT D86LZV8QUQVWSBJLQ9DJFGVH6AVJPQ953OV3CR0FNOCUTT354XL A0HZIUQ08GER89C6U11D3HQ3AKM4C2K5Y0RSBERUQC00S4G6FS6J WC2MNIHLCZAVRULG0NN2CD2KIVX38URC903671K50NH9ZZMHV95 F796RZI54XKBZZ7V1WJN0Z6C6M4JPH8M3R4SJ2Y18DNT7C2BYXY8D DK88L22Z3IDZDH2T7RH1G1BEM8B3DG9TPLFZ8JNWHYOZSZ64LJN62 GN50PS7YSLIWWVY02893KVS0D2WBQNDA2UKK0UU1H505BKBF3W 18O0HY21RDM1T3KN8L515D3T3FDD3GUK9WOFREFZ3DQNU571NX10 NCFUTE2LR81RGNJPUFD3C48R9ZFUF578H6E25G90PJEDRLTQ0K85AP KOWQGZUQ8ST3XHMB (Các test cịn lại liêu vào dài nên tơi để 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 02 03 04 05 06 07 08 09 10 11 12 BAI4.INP 45 50 7500 5002 6001 7002 8002 9003 9998 BAI4.OUT 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 i

Ngày đăng: 07/12/2020, 08:11

Từ khóa liên quan

Mục lục

  • Tổng quan bài thi:

    • Trong dịp nghỉ hè các bạn học sinh lớp 12 dự định tổ chức dã ngoại đến biển Sầm Sơn và sẽ đi bằng taxi. Các bạn được chia thành n nhóm, nhóm thứ i gồm Si bạn (1 ≤ Si ≤ 4) và mỗi chiếc taxi chở tối đa 4 hành khách. Vậy lớp 12 cần thuê ít nhất bao nhiêu chiếc taxi để chở các nhóm đi, với điều kiện là các bạn trong nhóm phải ngồi chung taxi (một taxi có thể chở một nhóm trở lên).

    • Dòng số 2 chứa dãy số nguyên S1, S2, ..., Sn (1 ≤ Si ≤ 4). Các số nguyên cách nhau bởi dấu cách với Si là số học sinh trong nhóm thứ i.

    • Dãy số nguyên dương tăng dần, trong đó ước nguyên tố của mỗi số không quá 5 được gọi là dãy Hamming.

    • Dòng đầu tiên chứa số nguyên t – số lượng tests (1 ≤ t ≤ 105),

    • Cho 2 số nguyên dương X=X1X2…Xn và Y= Y1Y2…Ym (M,N≤200). Hãy tìm số Z=Z1Z2…Zk lớn nhất (Z nhận được từ X và Y bằng cách xoá đi một số chữ số).

    • Thì Z=45 (nhận được từ X bằng cách xoá đi X1,X2,X3; nhận được từ Y bằng cách xoá đi Y2 , Y4 , Y5 , Y6)

    • Dòng thứ nhất là X.

    • Tổng quan bài thi:

      • Số hoàn hảo là số có tổng các ước số trừ nó bằng chính nó.

      • Ví dụ:

      • Ví dụ:

        • Cho trước số tự nhiên N.

        • Cho dãy số tự nhiên A gồm N phần tử a1, a2, …., aN và số nguyên dương K. Dãy con ai, ai+1, …, aj (1≤i≤j≤N) là dãy được tạo từ các phần tử liên tiếp của dãy A, bắt đầu từ phần tử thứ i và kết thúc ở phần tử thứ j.

        • Dòng đầu tiên chứa 2 số nguyên dương N, K (1≤ K≤N≤4x105).

        • Các bộ test

          • Từ Test 05 đến Test 08 có dữ liệu lớn nên tôi xin đính kèm tài liệu này. Các bạn có thể tải về tham khảo

          • Từ Test 03 đến Test 06 có dữ liệu lớn nên tôi xin đính kèm tài liệu này. Các bạn có thể tải về tham khảo

          • Từ Test 05 đến Test 06 có dữ liệu lớn nên tôi xin đính kèm tài liệu này. Các bạn có thể tải về tham khảo

          • Tổng quan bài thi:

            • Số hoàn hảo là số có tổng các ước số trừ nó bằng chính nó.

            • Ví dụ:

            • Ví dụ:

              • Cho trước số tự nhiên N.

              • Cho dãy số tự nhiên A gồm N phần tử a1, a2, …., aN và số nguyên dương K. Dãy con ai, ai+1, …, aj (1≤i≤j≤N) là dãy được tạo từ các phần tử liên tiếp của dãy A, bắt đầu từ phần tử thứ i và kết thúc ở phần tử thứ j.

              • Dòng đầu tiên chứa 2 số nguyên dương N, K (1≤ K≤N≤4x105).

                • Có 12 Test, mỗi test đúng được 0.5 điểm

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

Tài liệu liên quan