Phân loại và vận dụng phương pháp duyệt toàn bộ trong bồi dưỡng học sinh giỏi giúp nâng cao kết quả thi học sinh giỏi cấp tỉnh môn tin học

32 136 0
Phân loại và vận dụng phương pháp duyệt toàn bộ trong bồi dưỡng học sinh giỏi giúp nâng cao kết quả thi học sinh giỏi cấp tỉnh môn tin học

Đ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

SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HOÁ TRƯỜNG THPT TRIỆU SƠN SÁNG KIẾN KINH NGHIỆM PHÂN LOẠI VÀ VẬN DỤNG PHƯƠNG PHÁP DUYỆT TOÀN BỘ TRONG BỒI DƯỠNG HỌC SINH GIỎI GIÚP NÂNG CAO KẾT QUẢ THI HỌC SINH GIỎI CẤP TỈNH MÔN TIN HỌC Người thực hiện: Lê Thị Quỳnh Chức vụ: TPCM Đơn vị công tác: Trường THPT Triệu Sơn SKKN thuộc môn: Tin học THANH HOÁ NĂM 2020 MỤC LỤC MỞ ĐẦU 1.1 Lý chọn đề tài 1.2 Mục đích nghiên cứu 1.3 Đối tượng nghiên cứu 1.4 Phương pháp nghiên cứu 2 NỘI DUNG 2.1 Cơ sở lý luận 2.2 Thực trạng vấn đề cần giải .3 2.3 Các giải pháp giải vấn đề .3 2.3.1 Phân loại cách duyệt toàn 2.3.1.1 Duyệt toàn cách sử dụng vòng lặp lồng 2.3.1.1.1 Phát biểu toán 2.3.1.1.2 Nhận xét .4 2.3.1.2 Duyệt toàn cách sử dụng giải thuật quay lui 2.3.1.2.1 Phát biểu toán 2.3.1.2.2 Nhận xét .6 2.3.1.3 Duyệt toàn cách sử dụng giải thuật quay lui đặt nhánh cận .6 2.3.1.3.1 Phát biểu toán 2.3.1.3.2 Nhận xét .7 2.3.2 Các ví dụ vận dụng 2.3.2.1 Duyệt toàn cách sử dụng vòng lặp lồng 2.3.2.2 Duyệt toàn cách sử dụng giải thuật quay lui 10 2.3.2.3 Duyệt toàn cách sử dụng giải thuật quay lui đặt nhánh cận .13 2.4 Hiệu sáng kiến kinh nghiệm 15 KẾT LUẬN, KIẾN NGHỊ 17 3.1 Kết luận 17 3.2 Kiến nghị 17 TÀI LIỆU THAM KHẢO 18 DANH MỤC .19 PHỤ LỤC 20 MỞ ĐẦU 1.1 Lý chọn đề tài Mơn Tin học trường THPT có vị trí quan trọng nhiều so với môn Tin học cấp học dưới, kiến thức nhất, định hướng rõ ràng em chập chững bước vào ngưỡng cửa công nghệ thông tin Cũng cấp học này, em thử sức lập trình thực thơng qua kỳ thi học sinh giỏi (HSG) cấp, từ thể nhiều phẩm chất, kỹ em như: tư mạch lạc, kiến thức nhiều môn học huy động, nhanh nhạy suy nghĩ, tư lẫn việc gõ bàn phím Qua năm nghiên cứu giảng dạy thực tế lớp mũi nhọn, bồi dưỡng (cũng đồng phụ trách bồi dưỡng) học sinh ôn luyện thi HSG cấp Tỉnh, nhận thấy chuyên đề bồi dưỡng HSG môn Tin học thật chun đề khó, khơng học sinh mà với giáo viên phụ trách Trong đề thi HSG cấp Tỉnh, đề thi HSG cấp tỉnh khác ln xuất tốn có kích thước lớn, tốn khó Để nghĩ thuật giải thời điểm làm điều khơng dễ dàng Có phương pháp ln cho kết lại hạn chế chậm mặt thời gian, phương pháp mà trở thành phương pháp tình để học sinh ăn số test giới hạn, chí vận dụng thêm kỹ thuật khác cài đặt tốt ăn 100% test, phương pháp “duyệt tồn bộ” Vì vậy, tơi chọn đề tài “Phân loại vận dụng phương pháp duyệt toàn bồi dưỡng học sinh giỏi giúp nâng cao kết thi học sinh giỏi cấp Tỉnh mơn Tin học” làm sáng kiến kinh nghiệm năm học 2019 – 2020 để trao đổi với đồng nghiệp Đây phương pháp thực hiệu trường THPT Triệu Sơn 3, đồng thời hy vọng cách làm hoàn thiện, bổ sung nhân rộng trường THPT khác Tỉnh 1.2 Mục đích nghiên cứu - Tổng hợp, phân loại dạng toán duyệt tồn - Đánh giá trình độ nhận thức học sinh so với mục tiêu dạy học nhằm điều chỉnh hoạt động dạy hoạt động học 1.3 Đối tượng nghiên cứu - Thuật toán sử dụng vịng lặp lồng - Thuật tốn quay lui - Thuật toán đặt nhánh cận - Một số toán thi HSG cấp - Sự tư duy, ý thức học tập học sinh ôn thi học sinh giỏi 1.4 Phương pháp nghiên cứu Để thực đề tài này, sử dụng phương pháp: - Phương pháp nghiên cứu xây dựng sở lí thuyết: Cơ sở lý thuyết phương pháp duyệt cách sử dụng vòng lặp lồng nhau, phương pháp quay lui, phương pháp đặt nhánh cận; số toán đề thi cấp; Sự hứng thú học môn Tin học ý thức tự học học sinh môn học - Phương pháp điều tra khảo sát thực tế, thu thập thông tin: Thông qua kết điều tra mức độ hiểu thuật tốn sử dụng vịng lặp lồng nhau, thuật toán quay lui, đặt nhánh cận học sinh giỏi lớp 11 trường THPT Triệu Sơn - Phương pháp thống kê, xử lý số liệu: Trên sở kết đạt được, thống kê số liệu, xử lí số liệu để so sánh nhóm thực nghiệm đối chứng 2 NỘI DUNG 2.1 Cơ sở lý luận Duyệt toàn phương pháp liệt kê tất phần tử tập hợp D hữu hạn đó, từ phần tử thỏa mãn tiêu chí tối ưu đếm số lượng phần tử thỏa mãn điều kiện cho trước Cách tư xuất phát từ tập D hữu hạn tận dụng tốc độ tính tốn nhanh máy tính (mà tốc độ ln tăng trưởng theo cấp số nhân) Có thể nói cách tư đơn giản dễ viết chương trình Tuy nhiên, thấy phương pháp có hạn chế số lượng phần tử tập hợp D lớn Nó thể chỗ thời gian tính tốn kết thường không chấp nhận được, trường hợp máy tính đủ mạnh Do phương pháp duyệt toàn bộ, việc tổ chức liệt kê phần tử cho đảm bảo duyệt qua hết phần tử, cần phải vận dụng kết hợp phương pháp cho phép bỏ qua gộp số phần tử, điều cải thiện đáng kể thời gian thực chương trình, chí nhiều trường hợp thu chương trình hiệu 2.2 Thực trạng vấn đề cần giải Duyệt toàn phương pháp mà hầu hết học sinh ôn thi HSG nắm được, hiểu rõ nguyên lý hoạt động Tuy nhiên, đa số học sinh nghĩ đến duyệt toàn cách sử dụng vòng lặp lồng duyệt quay lui toán mức độ đơn giản Việc duyệt sử dụng nhánh cận (duyệt quay lui đặt nhánh cận) thực thử thách, khó khăn giáo viên học sinh Vì vậy, phạm vi đề tài này, mạnh dạn đề xuất vài cách phân loại vận dụng, kinh nghiệm thân áp dụng vào việc bồi dưỡng học sinh ôn thi HSG cấp Tỉnh 2.3 Các giải pháp giải vấn đề 2.3.1 Phân loại cách duyệt toàn Trong phạm vi đề tài này, xin đưa ý kiến phân loại sau nghiên cứu tham khảo từ nhiều kênh khác nhau, áp dụng kiểm nghiệm thực tế qua trình bồi dưỡng cho học sinh thi HSG cấp Tỉnh năm học gần 2.3.1.1 Duyệt tồn cách sử dụng vịng lặp lồng 2.3.1.1.1 Phát biểu tốn Nhóm tốn sử dụng phương pháp duyệt tồn nhóm toán liệt kê cách sử dụng vịng lặp lồng Bài tốn thuộc loại phát biểu sau: Cho k số (không phụ thuộc vào liệu) Hãy liệt kê tất (x1, x2,…,xk) xi  Di Di tập hợp hữu hạn phần tử Để liệt kê dãy thông thường sử dụng k vòng lặp lồng dạng: For x1  D1 For x2 D2 For xk  Dk Nếu lực lượng tập Di O(n) thời gian thực việc liệt kê tồn theo cách Nk Đây số lớn n, k lớn Chính cần phải có kĩ thuật cải tiến để giảm thời gian thực Khơng có ngun tắc chung để làm điều Ví dụ: cho dãy số nguyên a1, a2, an b1, b2, bm Hãy tìm giá trị nhỏ  b j với i n ,  j m Phương pháp để giải toán duyệt tồn cặp (i, j) (có thể thấy có n x m cặp vậy) để tìm cặp có  b j nhỏ For i:=1 to n For j:=1 to m If abs(a[i]+b[j])< then := abs(a[i]+b[j]); Thuật tốn có độ phức tạp O(mn) với m, n lớn (cỡ khoảng 100000) cách duyệt tồn khơng có hiệu Vì vậy, tốn có cải tiến nhằm tăng thời gian tìm kiếm sau: Nhận xét: |Ai + Bj| giá trị gần tốt Dựa vào nhận xét ta giải tiếp sau: Bước 1: Sắp xếp dãy tăng dần, độ phức tạp Max(O(NlogN), O(MlogM)) Bước 2: Độ phức tạp Max(O(N), O(M)) Xét dãy A từ đầu dãy i = dãy B từ cuối dãy j = N Min := |A1 + Bn| Lặp i Như độ phức tạp toán cải tiến Max(O(NlogN), O(MlogM)) 2.3.1.1.2 Nhận xét Ưu điểm: - Dễ cài đặt, cài đặt ngắn gọn Hạn chế: - Không tối ưu mặt thời gian 2.3.1.2 Duyệt toàn cách sử dụng giải thuật quay lui 2.3.1.2.1 Phát biểu toán Thuật toán quay lui dùng để giải toán liệt kê cấu hình Mỗi cấu hình xây dựng cách xây dựng phần tử, phần tử chon cách thử tất khả Giả thiết cấu hình cần liệt kê có dạng (x 1, x2, xn) thuật tốn quay lui thực qua bước sau: 1) Xét tất giá trị x1 nhận, thử cho x1 nhận giá trị Với giá trị thử gán cho x1 ta sẽ: 2) Xét tất giá trị x2 nhận lại thử cho x2 nhận giá trị Với giá trị thử gán cho x2 lại xét tiếp khả chọn x3 n) xét tất giá trị xn nhận, thử cho xn nhận giá trị đó, thơng báo cấu hình tìm (x1,x2, xn) Trên phương diện quy nạp, nói thuật tốn quay lui liệt kê cấu hình n phần tử dạng (x1, x2, xn) cách thử cho x1 nhận giá trị Với giá trị thử gán cho x lại liệt kê tiếp cấu hình n-1 phần tử (x 2, x3, xn) Mơ tả thuật tốn quay lui mơ tả sau: {Thủ tục thử cho xi nhận tất giá trị mà nhận}  Mơ hình 1: Procedure Try(i: integer); Begin For (mọi giá trị V gán cho x1) Begin ; ; If (xi phần tử cuối cấu hình) then Else Try(i+1); { gọi đệ quy để chon tiếp xi+1} ; End; End;  Mơ hình 2: Procedure Try(i: integer); Begin if (xi vị trí cuối cấu hình) then else For ( giá trị V gán cho x1) Begin ; ; Try(i+1); { gọi đệ quy để chon tiếp xi+1} ; End; End; Thuật toán quay lui bắt đầu lời gọi Try(1) Ví dụ: Sinh tồn xâu nhị phân có độ dài N cho trước Phương pháp quay lui áp dụng thủ tục sau: Procedure Try(k:integer); {sinh xâu nhị phân có độ dài k} Var i:integer; Begin For i:=0 to {xét khả x[k]} Begin x[k] := i; if k = N then print {Nếu sinh xâu nhị phân độ dài N kết quả} else try(k+1); {gọi đệ qui để sinh tiếp x[k+1]} End; End; 2.3.1.2.2 Nhận xét Ưu điểm: - Dễ cài đặt, cài đặt ngắn gọn Hạn chế: - Không tối ưu mặt thời gian 2.3.1.3 Duyệt toàn cách sử dụng giải thuật quay lui đặt nhánh cận 2.3.1.3.1 Phát biểu tốn Có số tốn tìm nghiệm tối ưu, sử dụng phương pháp quay lui tìm hết phương án nghiệm sau chọn lấy nghiệm tối ưu đáp ứng u cầu tốn Như khơng gian tìm kiếm vét cạn toàn khả xảy nghiệm, điều làm cho chương trình khơng tối ưu mặt thời gian Phương pháp nhánh cận cải tiến phương pháp quay lui, áp dụng để tìm nghiệm tối ưu tốn Đây phương pháp khó, tốn áp dụng phương pháp thường toán mức độ câu cuối (nếu có) đề thi HSG cấp Tỉnh đề thi phạm vi lớn cấp Tỉnh Nó thực thử thách giáo viên học sinh Tư tưởng phương pháp nhánh cận sau: Giả sử xây dựng k thành phần (x1, x2, , xk) nghiệm mở rộng thêm (x 1, x2, , xk, xk+1), biết tất các nghiệm mở rộng (x 1, x2, , xk+1, ) khơng tốt nghiệm cũ ta khơng cần mở rộng thêm Như vậy, với phương pháp nhánh cận, ta khơng cần phải duyệt tồn phương án để tìm nghiệm tốt mà cách đánh giá thành phần mở rộng, ta cắt bỏ phương án khơng cần thiết, việc tìm nghiệm tối ưu nhanh Cái khó việc áp dụng phương pháp nhánh cận đánh giá thành phần mở rộng, đánh giá tốt giúp bỏ nhiều phương án không cần thiết, thuật tốn nhánh cận cho hiệu tốt mặt thời gian Có thể tổng quan phương pháp mơ hình sau: Procedure init; Begin ; End; { thủ tục thử chon cho x tất giá trị nhận} Procedure try(i:integer); Begin {đánh giá thành phần mở rộng} If then exit; For (mọi giá trị V gán cho x1) Begin ; If then Else try(i+1); ; End; End; Begin Init; Try(1); End 2.3.1.3.2 Nhận xét ABC.INP ABC.OUT  ABACABA Hướng dẫn giải: Ta có nhận xét ký tự liên tiếp ln có ký tự C Do điều kiện nhánh cận bước duyệt ký tự i xâu - Xâu có i ký tự tạo khơng có đoạn liên tiếp trùng - s(i) + (n-i) div < smin Trong - s(i) số ký tự C dùng để tạo xâu i ký tự - smin số ký tự C xâu khác thỏa mãn yêu cầu đầu đề chưa tối ưu Có thể khởi tạo smin ban đầu số đủ lớn (Code tham khảo phần phụ lục) 2.4 Hiệu sáng kiến kinh nghiệm Sau ba năm học áp dụng phương pháp vào ôn luyện thi học sinh giỏi cấp Tỉnh (năm học 2017-2018 phụ trách chính, năm học 2018-2019 năm học 2019-2020 đồng phụ trách vài chun đề, có chun đề tìm kiếm nhị phân chun đề duyệt tồn bộ), tơi nhận thấy em hứng thú hiểu rõ nội dung, chất thuật toán Đặc biệt, em nhìn nhận để giải tốn phương pháp hiệu Từ đó, mở khả hứng thú học tập cho nội dung (chuyên đề) khác, cách tư toán đa dạng khoa học Kết thi học sinh giỏi tăng lên Cụ thể sau: * Đối với nhóm học sinh đối chứng: STT Họ tên Hà Minh Dũng Trịnh Việt Đức Đỗ Phương Nam Nguyễn Văn Tuấn Lớp 11B4 11B4 11C3 11C3 Kết thi HSG Điểm Xếp giải 10.0 KK 8.5 Không 6.5 Không 9.0 Không Năm học 2015-2016 2016-2017 15 * Đối với nhóm học sinh thực nghiệm: STT Họ tên Lớp Đào Công Cường Lê Thị Hương Hà Văn Đức Đào Huy Hiệu Nguyễn Thị Châm Lê Ngọc Linh 11D3 11D3 11E4 11E4 11A35 11A35 Kết thi HSG Điểm Xếp giải 12.0 KK 15.0 Ba 12.5 KK 16.25 Nhì Khơng tổ chức dịch covid 19 Năm học 2017-2018 2018-2019 2019-2020 Như vậy, rõ ràng việc hướng dẫn học sinh giải toán phương pháp chuyên sâu chủ đề đó, có kết hợp kỹ thuật khác giúp em giải triệt để nhiều toán mức độ vừa khó, em nhìn nhận để giải tốn đặt cách nhanh xác Từ đó, kết thi học sinh giỏi cấp Tỉnh ngày nâng cao, hướng đến việc em thuận lợi trình học tập trường đại học, cao đẳng với đam mê lĩnh vực công nghệ thông tin Với kết có năm học gần đây, thiết nghĩ cách làm thực hiệu quả, góp phần vào thành cơng công tác ôn thi học sinh giỏi môn Tin học nhà trường, định hướng rõ ràng cho học sinh việc vạch phương pháp học tập hiệu lĩnh vực công nghệ thông tin trường cao đẳng, đại học sau 16 KẾT LUẬN, KIẾN NGHỊ 3.1 Kết luận Thông qua thực đề tài, tơi nhận thấy duyệt tồn phương pháp cần thiết việc dạy học lập trình nói chung ơn thi học sinh giỏi nói riêng Việc áp dụng thuật toán đem lại hiệu thực việc ôn thi học sinh giỏi đơn vị THPT Triệu Sơn 3: Học sinh tự tin hơn, học tập tích cực hơn, chủ động hơn, khả tư tốt có kết cao Vận dụng phương pháp duyệt toàn để giải toán thi HSG cấp phần nhỏ chuyên đề bồi dưỡng HSG Tơi hy vọng tốn nêu đề tài kênh gợi mở để tham khảo phát triển thành tài liệu bổ ích cho thầy giáo cho em học sinh việc nghiên cứu bồi dưỡng HSG cấp 3.2 Kiến nghị Đối với giáo viên, phải không ngừng tự học, tự bồi dưỡng, tham khảo ý kiến chia sẻ từ đồng nghiệp tập, đề thi học sinh giỏi cấp Từ vận dụng vào cơng tác bồi dưỡng học sinh giỏi đạt hiệu cao Đối với cấp lãnh đạo, cần tổ chức hội thảo chuyên đề cho giáo viên môn Tin học hàng năm để giáo viên có dịp trao đổi, học hỏi kinh nghiệm, tìm giải pháp, biện pháp tốt, ý tưởng hay giúp nâng cao chất lượng dạy học nói chung ơn thi học sinh giỏi nói riêng XÁC NHẬN Thanh Hóa, ngày 30 tháng 06 năm 2020 CỦA THỦ TRƯỞNG ĐƠN VỊ Tôi xin cam đoan SKKN viết, khơng chép nội dung người khác Người viết LÊ THỊ QUỲNH 17 TÀI LIỆU THAM KHẢO Tin học 10, NXB Giáo Dục, 2006 Tác giả: Hồ Sĩ Đàm, Hồ Cẩm Hà, Trần Đỗ Hùng, Nguyễn Đức Nghĩa, Nguyễn Thanh Tùng, Ngô Ánh Tuyết Tin học 11, NXB Giáo Dục, 2007 Tác giả: Hồ Sĩ Đàm, Hồ Cẩm Hà, Trần Đỗ Hùng, Nguyễn Đức Nghĩa, Nguyễn Thanh Tùng, Ngô Ánh Tuyết 3.Tài liệu chuyên Tin học 1, NXB Giáo Dục Tác giả Hồ Sĩ Đàm (chủ biên), Đỗ Đức Đông, Lê Minh Hoàng, Nguyễn Thanh Tùng Tài liệu Tập huấn giáo viên 2017 (Tỉnh Thanh Hóa) Website http://www.spoj.com/PTIT/problems/ Giải thuật lập trình Tác giả: Lê Minh Hoàng Website: vnoi.info Website: vn.spoj.pl 18 DANH MỤC CÁC ĐỀ TÀI SÁNG KIẾN KINH NGHIỆM ĐÃ ĐƯỢC HỘI ĐỒNG ĐÁNH GIÁ XẾP LOẠI CẤP PHÒNG GD&ĐT, CẤP SỞ GD&ĐT VÀ CÁC CẤP CAO HƠN XẾP LOẠI TỪ C TRỞ LÊN Họ tên tác giả: Lê Thị Quỳnh Chức vụ đơn vị công tác: TPCM, trường THPT Triệu Sơn TT Tên đề tài SKKN Kết Cấp đánh đánh giá giá xếp loại xếp loại (Phòng, Sở, (A, B, Tỉnh ) C) Sở GD&ĐT C Sử dụng sơ đồ tư nhằm tạo hứng thú nâng cao chất lượng cho học sinh dạy tiết 21 – tập, Tin học lớp 11 Một số kinh nghiệm giáo dục Sở GD&ĐT ý thức sử dụng Internet kỹ sống nhằm nâng cao nhận thức kết học tập cho học sinh thông qua chương IV Tin học 10 Hướng dẫn giải số Sở GD&ĐT tập sách tập Tin học 11 nhằm nâng cao kết học tập cho học sinh lựa chọn, bồi dưỡng học sinh giỏi Giải số tốn Sở GD&ĐT phương pháp tìm kiếm nhị phân giúp nâng cao hiệu bồi dưỡng học sinh giỏi Năm học đánh giá xếp loại 2012 - 2013 C 2015 – 2016 C 2017 – 2018 B 2018 – 2019 19 PHỤ LỤC Các code tham khảo giáo viên học sinh trường THPT Triệu Sơn thực với Test đảm bảo yêu cầu đề cho kết tin cậy Program substr; const Fi='substr.inp'; Fo='substr.out'; var F1,F2:text; S,tg:ansistring; i,j,dems,demc,n:longint; a,b:array[0 20000] of longint; dem:qword; procedure Nhap; begin assign(F1,Fi);reset(F1); assign(F2,Fo);rewrite(F2); S:=''; while not eof(F1) begin readln(F1,tg); S:=S+tg; end; while pos(' ',S)0 delete(S,pos(' ',S),1); S:=upcase(S); end; begin Nhap; dem:=0; dems:=0; demc:=0; fillchar(a,sizeof(f),0); fillchar(b,sizeof(e),0); a[0]:=0;b[0]:=0;n:=length(S); for i:= to n begin if S[i] in ['0' '9'] then inc(dems) else inc(demc); a[i]:=demc;b[i]:=dems; end; for i:= to n for j:= i to n if a[j]-a[i-1]>b[j]-b[i-1] then inc(dem); write(F2,dem); close(F1); close(F2); end -20 program subseq; const maxn=1000000; fi='subseq.inp'; fo='subseq.out'; var p : array[1 maxn]of integer; b, s : array[1 maxn]of longint; n, k, ans, sum : longint; f : text; procedure nhapdl; var i : longint; begin assign(f,fi); reset(f); readln(f,n,k); for i := to n readln(f,p[i]); close(f); end; function max (x, y: longint): longint; begin max := x; if x < y then max := y; end; procedure tinh; var j : longint; begin sum := 0; for j := to k sum := sum + p[j]; S[K] := sum; B[K] := sum; Ans := sum; for j := K+1 to N begin S[j] := S[j-1] + P[j] - P[j-K]; B[j] := Max( B[j-1] + P[j], S[j] ); if (Ans < B[j]) then Ans := B[j]; end; end; begin nhapdl; tinh; assign(f, fo); rewrite(f); write(f, ans); close(f); 21 end -Program bag; const fi='BAG.INP'; fo='BAG.OUT'; nmax = 20; var A,C,x,kq:array[1 nmax] of integer; N,M,Smax:integer; f:text; procedure doc; var i:integer; Begin assign(f,fi); reset(f); readln(f,N,M); for i:=1 to N readln(f,A[i],C[i]); close(f); end; procedure chon_kq; var S,W,i:integer; Begin S := 0; W := 0; for i:=1 to N Begin W := W + x[i] * A[i]; S := S + x[i] * C[i]; end; if W Smax then Begin Smax := S; kq := x; end; end; procedure try(i:integer); var j:integer; Begin for j:=0 to Begin x[i] := j; if i = N then chon_kq else try(i+1); end; end; 22 procedure ghi; var i:integer; Begin assign(f,fo); rewrite(f); writeln(f,Smax); for i:=1 to N if kq[i] = then write(f,i,' '); close(f); end; BEGIN Smax := 0; doc; try(1); ghi; END -program QuangCao; const fi='QUANGCAO.INP'; fo='QUANGCAO.OUT'; nmax = 10; mmax = 100; var den:array[1 nmax,1 mmax] of integer; dsang,dtam:array[1 mmax] of integer; D,C,Ctam,kqD,kqC:array[1 mmax] of integer; N,M,denmax:integer; f:text; procedure doc; var i,j:integer; Begin assign(f,fi); reset(f); readln(f,N,M); for i:=1 to N for j:=1 to M read(f,den[i,j]); close(f); end; procedure chuanbi; var i,j:integer; Begin fillchar(dsang,sizeof(dsang),0); fillchar(D,sizeof(D),0); fillchar(C,sizeof(C),0); 23 denmax := 0; for j:=1 to M for i:=1 to N if den[i,j] = then Begin inc(dsang[j]); inc(dtam[j]); inc(denmax); end; end; procedure chonkq; var i,S:integer; Begin S:=0; for i:=1 to M S := S + dsang[i]; if denmax < S then Begin denmax := S; kqD := D; kqC := C; end; end; procedure biendoi(k:integer); var i,j:integer; Begin for i:=1 to k if D[i] = then Begin for j:=1 to M if den[i,j] = then dec(dsang[j]) else inc(dsang[j]); end; for j:=1 to M if dsang[j] < N - dsang[j] then Begin C[j] := 1; dsang[j] := N - dsang[j]; end; end; procedure try(k:integer); var i:integer; Begin if k > N then exit; 24 for i:=1 downto Begin D[k] := i; Biendoi(K); chonkq; dsang := dtam; C:=ctam; try(k+1); end; end; procedure ghi; var i,dem:integer; Begin assign(f,fo); rewrite(f); dem := 0; for i:=1 to N if KqD[i] = then inc(dem); for i:=1 to M if kqC[i] =1 then inc(dem); Writeln(f,denmax); writeln(f,dem); for i:=1 to M if kqC[i] = then writeln(f,'C',i); for i:=1 to N if kqD[i] = then writeln(f,'D',i); close(f); end; BEGIN doc; chuanbi; try(1); ghi; END -program VALY; const fi='VALY.INP'; fo='VALY.OUT'; nmax = 100; var A,C,kq,x,vt:Array[1 nmax] of integer; T:array[1 nmax] of real; N,M,smax,S,W:longint; f:text; procedure khoitao; 25 Begin smax := 0; S:=0; W:=0; end; procedure doc; var i:integer; begin assign(f,fi); reset(f); readln(f,N,M); for i:=1 to N Begin readln(f,A[i],C[i]); T[i] := C[i]/A[i]; vt[i] := i; end; close(f); end; procedure QS(L,R:integer); var i,j,tg1:integer; x,tg:real; Begin i := L; j := R; x := T[(i + j) div 2]; repeat while (T[i] < x) inc(i); while (T[j] > x) dec(j); if i j; if i < R then QS(i,R); if L < j then QS(L,j); end; procedure chon_kq; Begin if S > Smax then Begin kq := x; Smax := S; 26 end; end; procedure try(i:integer); var j,k:integer; Begin k := (M - W) div A[i]; for j:=k downto Begin x[i] := j; S := S + x[i]*C[i]; W := W + x[i]*A[i]; if i = n then Chon_kq else if S + (T[i+1]*(M-W)) > Smax then try(i+1); S := S - x[i]*C[i]; W := W - x[i]*A[i]; end; end; procedure ghi; var i:integer; Begin assign(f,fo); rewrite(f); writeln(f,Smax); for i:=1 to N if kq[i] > then writeln(f,vt[i],' ',kq[i]); close(f); end; BEGIN Doc; Khoitao; QS(1,N); try(1); ghi; END -Program const Var ABC; Max = 200; fi='ABC.INP'; fo='ABC.OUT'; X, Best: array[1 max] of char; n, MinC: Integer; T: array[0 Max] of integer; 27 Function Check(i: integer): Boolean; var l,j,k: integer; s1,s2:string; Begin Check := true; for l := to (i div 2) Begin for j:=1 to (i - l) Begin S1 := ''; S2 := ''; for k:=j to j + l - S1 := S1 + x[k]; for k:=j+l to j + 2*l - S2 := S2 + x[k]; if S1 = S2 then Begin check := false; exit; end; end; end; end; procedure chonkq; Begin MinC := T[n]; BEST := X; end; Procedure Try(i: integer); Var j: char; Begin for j := 'A' to 'C' Begin X[i] := j; if Check(i) then Begin if j = 'C' then T[i] := T[i - 1] + else T[i] := T[i - 1]; if T[i] + (N- i) div < MinC then if i = N then Chonkq else Try(i+1); End; end; 28 end; procedure Print; var i: Integer; begin for i := to n write(output,Best[i]); Writeln; end; BEGIN Assign(Input, fi); Reset(Input); Assign(Output, fo); Rewrite(Output); Readln(n); T[0] := 0; MinC := n; Try(1); Print; Close(Input); Close(Output); END 29 ... vận dụng phương pháp duyệt toàn bồi dưỡng học sinh giỏi giúp nâng cao kết thi học sinh giỏi cấp Tỉnh môn Tin học? ?? làm sáng kiến kinh nghiệm năm học 2019 – 2020 để trao đổi với đồng nghiệp Đây phương. .. thuyết phương pháp duyệt cách sử dụng vòng lặp lồng nhau, phương pháp quay lui, phương pháp đặt nhánh cận; số toán đề thi cấp; Sự hứng thú học môn Tin học ý thức tự học học sinh môn học - Phương pháp. .. tập cho học sinh lựa chọn, bồi dưỡng học sinh giỏi Giải số toán Sở GD&ĐT phương pháp tìm kiếm nhị phân giúp nâng cao hiệu bồi dưỡng học sinh giỏi Năm học đánh giá xếp loại 2012 - 2013 C 2015 –

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

Hình ảnh liên quan

Bài toán 3: Bảng Quảng Cáo - Phân loại và vận dụng phương pháp duyệt toàn bộ trong bồi dưỡng học sinh giỏi giúp nâng cao kết quả thi học sinh giỏi cấp tỉnh môn tin học

i.

toán 3: Bảng Quảng Cáo Xem tại trang 15 của tài liệu.

Từ khóa liên quan

Mục lục

  • Người thực hiện: Lê Thị Quỳnh

  • 1. MỞ ĐẦU

    • 1.1. Lý do chọn đề tài

    • 1.2. Mục đích nghiên cứu

    • 1.3. Đối tượng nghiên cứu

    • 1.4. Phương pháp nghiên cứu

    • 2. NỘI DUNG

      • 2.1. Cơ sở lý luận

      • 2.2. Thực trạng của vấn đề cần giải quyết

      • 2.3. Các giải pháp giải quyết vấn đề

        • 2.3.1. Phân loại các cách duyệt toàn bộ

          • 2.3.1.1. Duyệt toàn bộ bằng cách sử dụng các vòng lặp lồng nhau

            • 2.3.1.1.1. Phát biểu bài toán

            • 2.3.1.1.2. Nhận xét

            • 2.3.1.2. Duyệt toàn bộ bằng cách sử dụng giải thuật quay lui

              • 2.3.1.2.1. Phát biểu bài toán

              • 2.3.1.2.2. Nhận xét

              • 2.3.1.3. Duyệt toàn bộ bằng cách sử dụng giải thuật quay lui đặt nhánh cận

                • 2.3.1.3.1. Phát biểu bài toán

                • 2.3.1.3.2. Nhận xét

                • Ưu điểm:

                • 2.3.2. Các ví dụ vận dụng.

                  • 2.3.2.1. Duyệt toàn bộ bằng cách sử dụng các vòng lặp lồng nhau

                  • Bài toán 2: (Nguồn: Đề thi đề nghị “Olympic đồng bằng duyên hải Bắc bộ lớp 10” năm học 2010-2011)

                    • 2.3.2.2. Duyệt toàn bộ bằng cách sử dụng giải thuật quay lui

                    • Bài toán 2: Cái túi

                    • Bài toán 3: Bảng Quảng Cáo

                      • 2.3.2.3. Duyệt toàn bộ bằng cách sử dụng giải thuật quay lui đặt nhánh cận

                      • Trong phạm vi đề tài này, tôi chỉ nêu các bài tập nhánh cận ở mức độ đơn giản, các bài toán liên quan đến nhánh cận “kinh điển” sẽ cần phải mở rộng kiến thức liên quan đến nhiều phương pháp khác như tìm đường đi ngắn nhất, cây khung nhỏ nhất,... những nội dung đó vượt quá phạm vi của đề tài này, vì vậy, tôi xin được dành cho đề tài lớn hơn.

                      • Bài toán 1: Xếp valy

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

Tài liệu liên quan