skkn các DẠNG bài về dãy CON và HƯỚNG GIẢI QUYẾT

70 1K 6
skkn 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 > 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; Trần Thị Thanh Huyền - GV Trường THPT chuyên Lê Hồng Phong NĐ procedure day1; 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 (maxmax 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≤i1[...]... Phong NĐ 24 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 đó Bài 11 Dãy con Fibonacci Cho một dãy các số nguyên a[1], a[2], , a[N] (N  1000) Hãy tìm trong dãy trên một đoạn con tạo thành dãy Fibonacci dài nhất Dữ liệu vào: Cho trong file văn bản DAYF.INP có cấu trúc: - Dòng đầu chứa số N - Dòng thứ hai chứa N số nguyên a[i], mỗi số cách nhau một dấu cách (-30000... close(f);close(g); END Bài 16 Dãy con chia hết hoàn toàn Ta gọi một dãy chia hết hoàn toàn là dãy a[1], a[2], , a[N] với a[j] chia hết cho a[i] với i < j Ví dụ: 3, 15, 60, 20 là một dãy chia hết hoàn toàn; 3, , 11, 3 là một dãy con của dãy 6, 3, 11, 5, , 4, 3, 11, 5, 3 nhưng 3, 3, không phải là một dãy con của dãy 6, 3, 11, 5, 7, 4, 3, 11, 5, 3 Yêu cầu: Cho một dãy các số nguyên, tìm dãy con chia hết hoàn... độ dài dãy con tìm được - Dòng tiếp theo ghi các phần tử của dãy con - Dòng cuối cùng ghi tổng các phần tử của dãy con đó CK.INP CK.OUT 10 17 8 12 32 14 11 22 5 25 44 52 17 12 32 14 11 5 44 52 17 187 Thuật toán tương tự bài 5 (tình huống 1) ở trên Bài 7 SUBSEQ Cho dãy N số nguyên a1, a2, , aN và số nguyên dương K Yêu cầu: Tìm đoạn con liên tiếp không ít hơn K số nguyên trong dãy sao cho tổng các số... end Bài 12 Dãy biến động Dãy b1, b2, b3,…bm gọi là dãy biến động nếu các xét 3 phần tử liền nhau bất kì trong dãy bi,bj,bk BD.INP BD.OUT (k=j+1, j=i+1,i≥1,k≤m) ta luôn có bi bk hoặc bi > bj

Ngày đăng: 06/06/2016, 11:58

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

Tài liệu liên quan