CÁC DẠNG BÀI VỀ DẠY CON VÀ HƯỚNG GIẢI QUYẾT

69 2.8K 46
CÁC DẠNG BÀI VỀ DẠY CON VÀ HƯỚNG GIẢI QUYẾT

Đ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Ở GD - ĐT NAM ĐỊNH TRƯỜNG THPT CHUYÊN LÊ HỒNG PHONG  SÁNG KIẾN DỰ THI CẤP TỈNH BÁO CÁO SÁNG KIẾN: CÁC DẠNG BÀI VỀ DÃY CON VÀ HƯỚNG GIẢI QUYẾT Tác giả: TRẦN THỊ THANH HUYỀN Trình độ chuyên môn: Thạc sỹ Tin học Chức vụ: Giáo viên Nơi công tác: Trường THPT chuyên Lê Hồng Phong Nam Định, 6/6-2015 Trần Thị Thanh Huyền - GV Trường THPT chuyên Lê Hồng Phong NĐ 1 Tên sáng kiến: CÁC DẠNG BÀI VỀ DÃY CON VÀ HƯỚNG GIẢI QUYẾT Lĩnh vực áp dụng: Giảng dạy môn Tin cho học sinh khối chuyên Tin, đội tuyển HSG đồng Bắc khối 10, khối 11, bồi dưỡng đội tuyển HSG Quốc gia Thời gian áp dụng: - Từ năm 2012 đến Tác giả: Họ tên : TRẦN THỊ THANH HUYỀN Ngày sinh: 09-10-1978 Nơi thường trú: 2/24/131 TRẦN THÁI TÔNG- TP NAM ĐỊNH Trình độ chuyên môn: Thạc sỹ Tin học Chức vụ công tác: Giảng dạy môn Tin học Nơi làm việc: Trường THPT chuyên Lê Hồng Phong- Tp Nam Định Địa chỉ: 76 Vị Xuyên Điện thoại: 03503 640.297 Đơn vị áp dụng sáng kiến Tên đơn vị: Trường THPT chuyên Lê Hồng Phong- Tp Nam Định Địa chỉ: 76 Vị Xuyên Điện thoại: 03503 640.297 Trần Thị Thanh Huyền - GV Trường THPT chuyên Lê Hồng Phong NĐ BÁO CÁO SÁNG KIẾN I ĐIỀU KIỆN HOÀN CẢNH TẠO RA SÁNG KIẾN Một công việc quen thuộc giáo viên giảng dạy Tin lớp chuyên là: bên cạnh việc thường xuyên phải hệ thống lại dạng tập, lựa chọn dạng phù hợp để học sinh rèn kỹ cài đặt tập sau trang bị lý thuyết mục tiêu tối quan trọng phân loại phát khiếu môn chuyên học sinh Trong trình khai thác dạng tập để dạy học tự nghiên cứu, gặp phải nhiều dạng tập liên quan đến “dãy con” nhận thấy chúng đa dạng nhiều mức độ khác nhau: từ dễ đến khó Để giải toán “dãy con” phải vận dụng linh hoạt chiến lược thiết kế thuật toán như: quay lui - vét cạn, chặt nhị phân đặc biệt phương pháp quy hoạch động mảng chiều, hai chiều vận dụng nhiều để giải Đây phương pháp thiết kế thuật toán mà học sinh chuyên cần phải rèn luyện nhiều làm tập II MÔ TẢ GIẢI PHÁP Mô tả giải pháp trước tạo sáng kiến Trước đây, ôn tập cho học sinh chuyên Tin dạy đội tuyển, đưa số tập nói tài liệu song đưa cách riêng lẻ, hệ thống theo chuyên đề thuật toán Ví dụ: Đa số dãy thường có cách giải phương pháp Quy hoạch động nên chúng có phần ví dụ áp dụng chuyên đề Quy hoạch động Tuy nhiên toán ”dãy con” đa dạng, nhiều thể loại, có nhiều phương pháp giải khác Vì vậy, thiết nghĩ: cần phải hệ thống hóa lại tập liên quan đến xử lý “dãy con” phân loại chúng thành dạng cụ thể để qua học sinh rút phương pháp giải phù hợp với dạng 2.Mô tả giải pháp sau có sáng kiến Trần Thị Thanh Huyền - GV Trường THPT chuyên Lê Hồng Phong NĐ Để góp phần giúp em vận dụng linh hoạt nhiều phương pháp thiết kế thuật toán vào giải tập cụ thể, phổ biến dạng tập dãy học sinh chuyên tin góp phần xây dựng kho tập bồi dưỡng HSG cấp, tài liệu xin trình bày vấn đề “ Các dạng toán dãy hướng giải quyết” NỘI DUNG A.Một số khái niệm Cho dãy N số nguyên A=(A1, A2, …, AN) Ví dụ: A= (8 6 9) với N=7 + Dãy dãy A cho trước dãy thu cách xóa số phần tử dãy A, phần tử lại giữ thứ tự Mỗi dãy số dãy Dãy rỗng dãy dãy Ví dụ: Dãy ( 9) dãy A + Đoạn (dãy đoạn con) dãy A cho trước dãy phần tử liên tiếp có A Ví dụ: Dãy ( 6 ) đoạn A * Các kiến thức cần trang bị: - Các thuật toán bản: Tìm ước chung số, kiểm tra tính nguyên tố số nguyên dương, kiểm tra tính nguyên tố cặp số, kiểm tra số thuộc dãy số Fibonacci,… - Các thuật toán nâng cao: tìm kiếm nhị phân, xếp nhanh, trộn mảng, thuật toán sinh hoán vị, thuật toán loang, xử lý bit - Các phương pháp thiết kế thuật toán: duyệt-vét cạn, quay lui, quy hoạch động B Các dạng tập Dạng 1: Dãy tăng dần (giảm dần) dài (ngắn nhất) Trần Thị Thanh Huyền - GV Trường THPT chuyên Lê Hồng Phong NĐ Bài Đoạn tăng dần dài Cho dãy gồm N số nguyên Tìm đoạn tăng dần có chiều dài lớn Dữ liệu vào: tệp văn DAYCON.INP Dòng thứ nhất: số tự nhiên N, ≤ N ≤ 20000 Từ dòng thứ hai trở đi: phần tử dãy Dữ liệu ra: tệp văn DAYCON.OUT DAYCON.INP DAYCON.OUT Chứa dòng gồm hai số tự nhiên 12 47 d – số đầu đoạn L – số phần tử 15513 đoạn (chiều dài đoạn) 33579 Trong tệp, liệu dòng cách 12 qua dấu cách Giải thích : Đó dãy 3 Thuật toán - Ta đọc dần phần tử từ input file so sánh hai phần tử liên tiếp x (phần tử đọc trước bước i) y (phần tử đọc sau bước i+1) - Nếu y < x coi kết thúc đoạn không giảm, ta cập nhật để ghi nhận lại đoạn không giảm dài Độ phức tạp: cỡ O(N) Chương trình program DAYCON; uses crt; const fn = 'DAYCON.INP'; gn = 'DAYCON.OUT'; var f,g: text; n: longint; a: mw1; iLeft, imax: longint; MaxLen: longint; procedure Update(i: longint); begin Trần Thị Thanh Huyền - GV Trường THPT chuyên Lê Hồng Phong NĐ if (MaxLen < i - iLeft) then begin MaxLen := i - iLeft; imax := iLeft; ileft := i; end; iLeft := i; end; procedure XuLi; var i, x, y: longint; begin assign(f,fn); reset(f); readln(f,n); read(f,x); iLeft := 1; MaxLen := 0; for i := to n begin read(f,y); if (y < x) then Update(i); x := y; end; Update(n+1); close(f); end; procedure Ghi; begin assign(g,gn); rewrite(g); writeln(g,imax,’ ‘,MaxLen); close(g); end; BEGIN XuLi; ghi; END Bài Đoạn đơn điệu dài Cho dãy gồm N số nguyên Tìm đoạn đơn điệu (không giảm không tăng) có chiều dài lớn Trần Thị Thanh Huyền - GV Trường THPT chuyên Lê Hồng Phong NĐ Dữ liệu vào: tệp DONDIEU.INP Dòng thứ nhất: số tự nhiên N, 1≤N≤ 20000 Từ dòng thứ hai trở đi: phần tử dãy Dữ liệu ra:tệp văn DONDIEU.OUT DONDIEU.INP Chứa dòng gồm hai số tự nhiên d số đầu đoạn L số 12 phần tử đoạn (chiều dài đoạn) 155133357912 DONDIEU.OUT 47 Thuật toán Nhận xét: Đoạn có phần tử đoạn đơn điệu (tăng, giảm), Đoạn gồm dãy liên tiếp phần tử đoạn đơn điệu (tăng, giảm) Ta dùng hai biến đếm phần tử tăng liên tiếp: dt đếm phần tử giảm liên tiếp: dg - Nếu = ai−1 ta tăng đồng thời dt dg đơn vị Nếu a i > ai−1 ta tăng dt thêm đơn vị đặt lại dg = - Nếu < ai−1 ta tăng dg thêm đơn vị chỉnh lại dt = Sau bước ta cập nhật đoạn đơn điệu dài tìm Độ phức tạp: cỡ O(N) Chương trình program DonDieu; uses crt; const fn = 'DONDIEU.INP'; gn = 'DONDIEU.OUT'; var f,g: text; n: longint; dt,dg: longint; iMax, MaxLen: longint; function Max(a,b,c: longint): longint; begin Trần Thị Thanh Huyền - GV Trường THPT chuyên Lê Hồng Phong NĐ if (a < b) then a := b; if (a > c) then Max := a else Max := c; end; procedure XuLi; var i,m,x,y: longint; begin assign(f,fn); reset(f); readln(f,n); read(f,x); dt := 1; dg := 1; MaxLen := 1; iMax := 1; for i := to n begin read(f,y); if (y = x) then begin dt := dt + 1; dg := dg + 1; end else if (y > x) then begin dt := dt + 1; else begin dg := 1; end dg := dg + 1; dt := 1; end; MaxLen := m; iMax := i - MaxLen + 1; end; m := Max(MaxLen, dt, dg); if (m > MaxLen) then begin x := y; end; close(f); end; procedure Ghi; begin assign(g,gn); rewrite(g); writeln(g, iMax,’ ‘, MaxLen); close(g); end; BEGIN XuLi; Ghi; END Trần Thị Thanh Huyền - GV Trường THPT chuyên Lê Hồng Phong NĐ Bài Chuỗi ốc Biển Đà Nẵng nhiều du khách biết đến điểm nghỉ ngơi lý tưởng tạp chí Forbes (Mỹ) bình chọn bãi biển đẹp giới Các bãi tắm có độ dốc lớn, nước xanh thích hợp cho du khách muốn thưởng thức loại hình dịch vụ giải trí nghỉ dưỡng, câu cá, lướt ván, lặn ngắm san hô, du thuyền, Trong đợt du lịch Đà Nẵng, sáng sớm DONG3D thường dạo dọc bờ biển nhặt vỏ ốc xâu chúng lại thành chuỗi Nguyên tắc tạo chuỗi ốc DONG3D sau: Ban đầu từ chuỗi rỗng, vỏ ốc; gặp vỏ ốc mới, lấy để xâu vào hai đầu chuỗi hoặc bỏ không lấy; cuối nhận chuỗi vỏ ốc mà tính từ đầu chuỗi đến cuối chuỗi, vỏ ốc có kích thước tăng dần gồm nhiều vỏ ốc tốt Yêu cầu: Cho trước dãy a1, a2,…, an kích thước vỏ ốc mà DONG3D gặp dọc bờ biển, tìm cách nhặt xâu chuỗi để chuỗi gồm nhiều vỏ ốc Dữ liệu: Vào từ file BEADS.INP Dòng chứa số nguyên dương N ≤ 105 BEADS.INP BEADS.OUT 44531 Dòng chứa N số nguyên dương a1, a2,…, an (∀i: ai≤ 109) cách dấu cách Kết quả: Ghi file BEADS.OUT số nguyên số lượng vỏ ốc chuỗi tạo Thuật toán: - Tìm dãy tăng dài F[i] với i phần tử - Tìm dãy giảm dài F2[i] với i phần tử - Kết cần tìm toán max(F[i]+F2[i]-1); Chương trình: var fi,fo:text; f,a,b,f2:array[1 100000]of longint; i,n,max,tg,j:longint; procedure day1; Trần Thị Thanh Huyền - GV Trường THPT chuyên Lê Hồng Phong NĐ begin f[n]:=1; for i:=n-1 downto begin max:=0; for j:=i+1 to n if (maxa[i]) then max:=f[j]; f[i]:=max+1; end; end; procedure day2; begin f2[n]:=1; for i:=n-1 downto begin max:=0; for j:=i+1 to n if (maxf[i]+max then f[k]:=f[i]+max; if a[i]>max then max:=a[i]; end; end; Ds:=f[n]; end; procedure Main; begin assign(fi,tfi); reset(fi); assign(fo,tfo); rewrite(fo); Doc; Tinh; writeln(fo,Ds); close(fi); close(fo); end; BEGIN Main; END Bài 26 TDSEQ Cho dãy số A gồm N số nguyên số nguyên M Tìm dãy số 1≤i 1[...]... XuLi; ghi; END Bài 6 Dãy con dài nhất tổng chia hết cho k Cho một dãy số nguyên gồm N phần tử a 1 , a2, , aN và một số nguyên k Giả thiết dãy cho luôn luôn tồn tại một dãy con có tổng các phần tử chia hết cho k Yêu cầu : Hãy tìm dãy con có nhiều phần tử nhất có tổng các phần tử chia hết cho k Dữ liệu vào: Ghi trong file text, tên file là CK.INP gồm 2 dòng: - Dòng đầu ghi 2 số nguyên N và k ( 0a[i+1]; dau=1 thì a[i] ... kiểm tra điều kiện O(n), độ phức tạp O(n3) - Thuật toán 2: Thử cặp số (i,j) kiểm tra điều kiện O(1), độ phức tạp O(n2) - Thuật toán 3: gọi A số lượng số (i,j) mà a i+ai+1+ aj

Ngày đăng: 13/03/2016, 00:55

Mục lục

  • LCS2X.INP

  • LCS2X.OUT

  • 3

  • Dạng 1: Dãy con tăng dần (giảm dần) dài nhất (ngắn nhất)

  • Bài 1. Đoạn con tăng dần dài nhất

    • Thuật toán

    • Chương trình

    • Bài 2. Đoạn đơn điệu dài nhất

      • Thuật toán

      • Dạng 2 : Tổng, tích các phần tử của dãy con

      • Bài 5. Tổng đoạn ngắn nhất

        • Thuật toán

        • Dữ liệu:BANGSO.INP

        • Kết quả: BANGSO.OUT

        • Giải thích ví dụ: các số được chọn là 9, 2, 4, 1, 7 và 9-2+4-1+7=17

        • Dạng 3: Dãy con có nhiều phần tử nhất mà các phần tử trong dãy thỏa một tính chất nào đó

        • Ta vẫn giải quyết tương tự như bài trên nhưng kết hợp thêm kiến thức về Interval để có thể giải quyết triệt để bài toán này

          • Dữ liệu vào: LQD.INP

          • Kết quả: LQD.OUT: Đưa là độ dài lớn nhất của dãy con chung

          • Yêu cầu

          • Dữ liệu vào: LCS2X.INP

          • Kết quả: LCS2X.OUT

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

Tài liệu liên quan