skkn CHỌN cấu TRÚC dữ LIỆU CHO bài TOÁN QUY HOẠCH ĐỘNG

32 894 5
skkn CHỌN cấu TRÚC dữ LIỆU CHO bài TOÁN QUY HOẠCH ĐỘNG

Đ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 ĐỒNG NAI Đơn vị Trường THPT chuyên Lương Thế Vinh Mã số: SÁNG KIẾN KINH NGHIỆM CHỌN CẤU TRÚC DỮ LIỆU CHO BÀI TOÁN QUY HOẠCH ĐỘNG Người thực hiện: LÊ QUANG VINH Lĩnh vực nghiên cứu: - Quản lý giáo dục  - Phương pháp dạy học môn: TIN HỌC  - Lĩnh vực khác:  Có đính kèm: Các sản phẩm in SKKN  Mô hình Đĩa CD (DVD)  Phim ảnh Năm học: 2014 - 2015  Hiện vật khác SƠ LƯỢC LÝ LỊCH KHOA HỌC –––––––––––––––––– I THÔNG TIN CHUNG VỀ CÁ NHÂN Họ tên: LÊ QUANG VINH Ngày tháng năm sinh: 19/12/1985 Nam, nữ: Nam Địa chỉ: Phòng V3, KTX trường THPT chuyên Lương Thế Vinh Điện thoại: Fax: Chức vụ: Tổ trưởng Nhiệm vụ giao: giảng dạy Đơn vị công tác: trường THPT chuyên Lương Thế Vinh II (CQ)/ (NR); ĐTDĐ: 0167 803 8755 E-mail: lequangvinh1912@gmail.com TRÌNH ĐỘ ĐÀO TẠO - Học vị (hoặc trình độ chuyên môn, nghiệp vụ) cao nhất: Thạc sĩ - Năm nhận bằng: 2012 - Chuyên ngành đào tạo: Công nghệ thông tin III KINH NGHIỆM KHOA HỌC - Lĩnh vực chuyên môn có kinh nghiệm: Giảng dạy Tin học Số năm có kinh nghiệm: - Các sáng kiến kinh nghiệm có năm gần đây: o Lý thuyết tập đồ thị - Phần khung (năm 2011) o Website bồi dưỡng khiếu tin học (năm 2012) o Đưa tập website VNOI vào giảng dạy Tin học chuyên (năm 2013) o Định hướng đề kì thi học sinh giỏi môn Tin học (năm 2014) Tên SKKN : CHỌN CẤU TRÚC DỮ LIỆU CHO BÀI TOÁN QUY HOẠCH ĐỘNG I LÝ DO CHỌN ĐỀ TÀI Trong kì thi học sinh giỏi cấp tỉnh, cấp quốc gia nay, dạng toán Quy hoạch động ngày phổ biến, chiếm đa số thi Bài toán Quy hoạch động đề cập toán giải phương pháp Quy hoạch động Tư tưởng phương pháp tính kết toán thông qua kết toán theo công thức truy hồi Việc lưu trữ kết toán cách tối ưu nhiệm vụ phương pháp Học sinh làm quen dạng thường gặp khó khăn chọn cấu trúc liệu để lưu trữ Sáng kiến kinh nghiệm “Chọn cấu trúc liệu cho toán Quy hoạch động” giới thiệu số tập Quy hoạch động phân loại theo cấu trúc liệu sử dụng Giúp cho học sinh dễ dàng nhận biết dạng có thêm “kinh nghiệm” để chọn cấu trúc liệu Sáng kiến kinh nghiệm nhằm mục đích: • Bồi dưỡng học sinh lớp chuyên Tin • Bồi dưỡng đội tuyển thi học sinh giỏi • Giới thiệu, trao đổi với giáo viên đồng nghiệp dạng toán Quy hoạch động cách tiếp cận theo hướng cấu trúc liệu II CƠ SỞ LÝ LUẬN VÀ THỰC TIỄN Hiện có số tài liệu trình bày chuyên đề Quy hoạch động như: • Sách giáo khoa chuyên Tin [1, 97 - 107]: trình bày số ví dụ đặc trưng tập rèn luyện Chưa có phân loại theo tiêu chí định • Giải thuật lập trình [2, 155 - 189]: trình bày giống Sách giáo khoa chuyên Tin • Tài liệu bồi dưỡng khiếu Tin học khối THPT [4, 85 – 109]: trình bày nhiều ví dụ toán Quy hoạch động, có lời giải, chương trình cài đặt cụ thể Tuy nhiên, chưa có phân loại tập • Kho tập website spoj.com [5]: tổng hợp tập tất dạng bài, thích hợp để học sinh luyện tập Các tập Quy hoạch động website chưa phân loại Trong trình giảng dạy lớp chuyên Tin, tác giả nhận thấy đa số học sinh làm quen với dạng này, sau tìm công thức truy hồi, thường gặp khó khăn việc cài đặt, mà chủ yếu chọn cấu trúc liệu để lưu trữ toán Cần có phân loại chi tiết toán Quy hoạch động Tác giả chọn tiêu chí phân loại theo cấu trúc liệu để giúp học sinh có thêm “kinh nghiệm” để chọn cấu trúc liệu cho toán III TỔ CHỨC THỰC HIỆN CÁC GIẢI PHÁP Tổ chức thực 1) Tìm hiểu nội dung chương trình tin học chuyên sâu, nội dung chuyên đề Quy hoạch động tài liệu “Chương trình chuyên sâu THPT chuyên – môn Tin học” Bộ Giáo Dục Đào Tạo phát hành năm 2009 • Theo tài liệu này, chuyên đề Quy hoạch động giảng dạy 15 tiết khối 11, sau học xong yêu cầu học sinh phải làm toán quen thuộc như: - Bài toán dãy đơn điệu tăng dài nhất; Bài toán xâu chung dài nhất; Bài toán biến đổi xâu; Bài toán túi; Bài toán lũy thừa số; Bài toán nhân ma trận; Bài toán chia đa giác thành tam giác; … • Để phù hợp với thực tế giảng dạy trường, tác giả chia chuyên đề thành phần: phần dạy khối 10 phần nâng cao dạy khối 11 Các ví dụ trình bày đề tài chủ yếu dành cho học sinh lớp 10 làm quen với toán Quy hoạch động 2) Tham khảo tài liệu, giáo án, dự tiết dạy chuyên đề Quy hoạch động đồng nghiệp • Sau tham khảo tài liệu, dự số tiết dạy đồng nghiệp Tác giả nhận thấy phần lớn trình bày vấn đề từ dễ đến khó, từ ví dụ cụ thể đến tập vận dụng Cách trình bày có nhiều ưu điểm, học sinh nắm bắt vấn đề dễ dàng Các ví dụ đề tài trình bày theo cách trên, bổ sung thêm phần phân loại toán 3) Tham khảo đề thi học sinh giỏi Tin học cấp tỉnh, cấp quốc gia, Olympic 30.4 • Như trình bày trên, toán Quy hoạch động chiếm đa số thi học sinh giỏi Trong đề tài có sử dụng số tập Quy hoạch động trích từ đề thi 4) Sưu tầm, xây dựng, phân loại tập theo hướng Cấu trúc liệu sử dụng • Sau nghiên cứu cách giải tập tham khảo từ đề thi, tài liệu, website, tác giả tiến hành phân loại theo tiêu chí cấu trúc liệu sử dụng 5) Giảng dạy thử nghiệm chuyên đề Quy hoạch động cho lớp 10 Tin Theo dõi khả tiếp thu học sinh Lấy ý kiến học sinh tích cực hạn chế việc phân loại tập Chuyên đề Quy hoạch động dạy (buổi) x (tiết) = 20 (tiết), theo phân bố sau Buổi Tên Nội dung Làm quen với • Nguyên lí tối ưu, đặc trưng toán toán Quy hoạch giải thuật toán QHĐ, đặc động trưng thuật toán QHĐ • Sự giống khác thuật toán QHĐ Đệ quy • Cách nhận biết toán cụ thể giải QHĐ hay không Dạng 1: dùng biến • Các tập dạng đơn để lưu trữ lời giải cho toán QHĐ Dạng 2: dùng mảng • Các tập dạng chiều để lưu trữ lời giải cho toán QHĐ Dạng 3: dùng mảng • Các toán dạng chiều để lưu trữ lời giải cho toán QHĐ Ôn tập, kiểm tra • Để kiểm tra cuối chuyên đề 5) Tổng kết, sửa chữa, hoàn thiện đề tài Sau giảng dạy chuyên đề Quy hoạch động cho lớp 10 Tin, tác giả tiến hành lấy ý kiến đồng nghiệp, học sinh để rút kinh nghiệm Tiến hành sửa chữa hoàn thiện đề tài Nội dung đề tài Cấu trúc liệu sử dụng toán Quy hoạch động đa dạng Từ cấu trúc liệu có sẵn như: biến, mảng chiều, mảng chiều, … kiểu liệu nâng cao tự xây dựng như: stack, queue, tree, heap, … Vì giới hạn thời gian, để học sinh làm quen dễ dàng tiếp thu, đề tài giới hạn tập sử dụng cấu trúc liệu Các dạng nâng cao tiếp tục bổ sung thời gian tới 2.1 Dạng 1: Dùng biến đơn Trong công thức truy hồi để tìm lời giải toán chính, cần sử dụng số (hai, ba …) lời giải toán Ví dụ Bài FIBO Dãy Fibonacci Dãy fibonacci dãy vô hạn số nguyên dương 1, 1, 2, 3, 5, 8, … Input Output Yêu cầu: Cho n Hãy số hạng thứ n dãy Input: số nguyên dương n (n < 103) Output: số hạng thứ n dãy Fibonacci Giải Gọi Fn số hạng thứ n dãy số Để giải toán trên, thông thường ta phải tìm công thức tính Fn từ số n đầu vào Các nhà toán học nhiều thời gian để tìm công thức: (1) Việc tìm công thức tường minh khó, đòi hỏi nhiều công sức, thời gian phải có trình độ toán học cao cấp Tuy nhiên, ta lập công thức tính Fn theo dạng truy hồi sau: • fi =1 i≤2 • fi = fi – + fi-2, i≥3 Công thức mô tả quy luật dãy số “số sau tổng hai số trước” mà học sinh tiểu học bình thường nghĩ Với công thức này, muốn tìm số hạng thứ n, ta phải tìm hai số hạng trước n, muốn tìm hai số hạng phía trước này, ta lại tiếp tục phải tìm số hạng phía trước Sau chương trình dùng biến để lưu lại toán fi1 fi2 Chương trình const fin='fibo.inp'; fon='fibo.out'; procedure solve; var fi1,fi2,t:QWORD; n,i:longint; begin readln(n); Fi1:=1;//fi-1 fi2:=1;//fi-2 For i:=3 to n begin T:=fi1; fi1:=fi1+fi2; fi2:=t; end; writeln(fi1); end; begin assign(input,fin);reset(input); assign(output,fon);rewrite(output); solve; close(input);close(output); end Bài NKTICK Xếp hàng mua vé Có N người hàng mua vé dự buổi hoà nhạc Ta đánh số họ từ đến N theo thứ tự đứng hàng Mỗi người cần mua vé, song người bán vé phép bán cho người tối đa hai vé Vì thế, số người rời hàng nhờ người đứng trước mua hộ vé Biết ti thời gian cần thiết để người i mua xong vé cho Nếu người i+1 rời khỏi hàng nhờ người i mua hộ vé thời gian để người thứ i mua vé cho hai người ri Input Output 18 25784 10 10 24 5784 50 50 50 Yêu cầu: Xác định xem người cần rời khỏi hàng nhờ người đứng trước mua hộ vé để tổng thời gian phục vụ bán vé nhỏ Dữ liệu • Dòng chứa số N (1 ≤ N ≤ 60000) • Dòng thứ ghi N số nguyên dương t1, t2, , tN (1 ≤ ti ≤ 30000) • Dòng thứ ba ghi N-1 số nguyên dương r1, r2, , rN-1 (1 ≤ ri ≤ 30000) Kết quả: In tổng thời gian phục vụ nhỏ Giải Gọi f[i] tổng thời gian mua vé nhỏ tính từ người người i Ta có công thức truy hồi: fi=min(fi-1+ti, fi-2+ri-1) Chương trình sau dùng hai biến f1, f2 để lưu kết toán Chương trình const fin='nktick.inp';fon='nktick.out'; maxn=60000; var n,i:longint; t,r,f:array[1 maxn] of longint; f1,f2,tam:longint; function min(a,b:longint):longint; var x:longint; begin x:=a; if b f(i) = f(i-1) + f(i-2) với f(1) = f(2) = => f(N) kết toán 10 jmax:=-1; for j:=0 to i-1 if (c[i].a-c[j].a>=p) then if (f[j]>f[jmax]) then jmax:=j; if jmax=-1 then f[i]:=0 else f[i]:=f[jmax]+c[i].b; t[i]:=jmax; end; {truy vet} z:=t[n+1]; d:=0; repeat inc(d); kq[d]:=z; z:=t[z]; until z=0; writeln(d,' ',f[n+1]-1); //for i:=d downto writeln(kq[i],' '); end; begin assign(input,fin);reset(input); assign(output,fon);rewrite(output); read(n,P); for i:=1 to n read(c[i].a,c[i].b); xuli; close(input);close(output); end Bài tập vận dụng Inpu Output t 79 68 18 13 06 37 Bài ACTIVITY Bố trí phòng họp Có n họp đánh số từ đến n đăng ký làm việc phòng hội thảo Cuộc họp thứ t cần bắt đầu sau thời điểm si kết thúc thời điểm fi: Hỏi bố trí phòng hội thảo phục vụ nhiều họp, cho khoảng thời gian làm việc hai họp không giao Dữ liệu:  Dòng chứa số nguyên dương n≤ 106  Dòng thứ i số n dòng chứa hai số nguyên si, fi ≤ si ≤fi ≤ 105 Các số dòng Input file ghi cách dấu cách Kết quả:  Dòng ghi số k số họp chấp nhận phục vụ  k dòng liệt kê số hiệu họp chấp nhận theo thứ tự từ họp tới họp cuối , dòng ghi số hiệu họp Giải thích Hướng dẫn Sắp xếp họp tăng dần theo thời điểm kết thúc (bi) Thế họp i bố trí sau họp j j

Ngày đăng: 14/08/2016, 14:25

Từ khóa liên quan

Mục lục

  • 1. Tổ chức thực hiện

  • 2. Nội dung của đề tài

    • 2.1. Dạng 1: Dùng biến đơn

      • Bài 1. FIBO Dãy Fibonacci

        • Giải

        • Chương trình

        • Bài 2. NKTICK Xếp hàng mua vé

          • Giải

          • Chương trình

          • Bài 3. VSTEPS Bậc thang

            • Hướng dẫn

            • Bài 4. LATGACH Lát gạch

              • Hướng dẫn

              • Bài 5. NKCABLE Nối mạng

                • Hướng dẫn

                • 2.2. Dạng 2: dùng mảng

                  • Bài 1. LIQ Dãy con tăng dài nhất

                    • Giải

                    • Chương trình

                    • Bài 2. NHAHANG Nhà hàng (HSG12_DNAI_2011_V2)

                      • Giải

                      • Chương trình

                      • Bài 3. ACTIVITY Bố trí phòng họp

                        • Hướng dẫn

                        • Bài 4. THUEMAY Cho thuê máy

                          • Hướng dẫn

                          • 2.3. Dạng 3: Dùng bảng (mảng 2 chiều)

                            • Bài 1. BBAGCái túi

                              • Giải

                              • Chương trình

                              • Bài 2. QBSTR Xâu con chung dài nhất

                                • Giải

                                • Chương trình

                                • Bài 3. ROBOT1Robot

                                  • Giải

                                  • Chương trình

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

Tài liệu liên quan