Chuyên đề 1: BÀI TOÁN SỐ HỌCYêu cầu: Học sinh phải nắm được các kiến thức cơ bản như: tố, số chính phương, tính giai thừa.... Thuật giải : Mấu chốt của bài toán là tính tổng các chữ s
Trang 1Tổng quan chương trình bồi
Trang 2Một số chuyên đề
bồi dưỡng HSG9
Trang 3Chuyên đề 1: BÀI TOÁN SỐ HỌC
Yêu cầu: Học sinh phải nắm được các kiến
thức cơ bản như:
tố, số chính phương, tính giai thừa
phân
vị, hàng trăm, hàng ngàn,… bằng cách
Trang 4VD1_1: Tìm số tự nhiên n nhỏ nhất sao cho
(n+1)(2n+1) chia hết cho 6 và thương là số
repeat i:=i+1;
Trang 6if N<=30 then r:= tongS(N) mod 30 else
begin r1:=TongS(30) mod 30; r2:=Haimu(30) mod 30; r3:=TongS(N-30) mod 30; r:= (r1+ r2*r3 ) mod 30 end;
writeln('r=',r); readln; END.
Trang 10until (i mod j=0) or (i=j);
if j<i then ngto:=false;
Trang 11Hai số tự nhiên được gọi là Nguyên tố
tương đương nếu chúng có chung các
ước số nguyên tố Cho trước hai số tự nhiên N, M Hãy viết chương trình kiểm tra xem các số này có là nguyên tố tương đương với nhau hay không
Ví dụ: 15, 75 là nguyên tố tương đương
Trang 12if stop then write(‘Khong ngto tuong duong')
else write(‘Ngto tuong duong’);
readln;
END.
Trang 13VD6_1:
Số “siêu nguyên tố” là số nguyên tố mà khi
bỏ một số tuỳ ý các chữ số bên phải của
Trang 14BEGIN Write ('Nhap N: '); Readln (N);
ka:=1; a[ka]:=0;
For i:=1 to N do Begin Kb:=0;
For k:=1 to ka do For cs:=0 to 9 do
If Prime(a[k]*10+cs) then Begin
Inc(kb);
b[kb]:=a[k]*10+cs; End;
Trang 15VD7_1: Tìm nghiệm nguyên dương
1 x
1
= +
Đáp số :
Có 9 cặp nghiệm:
) 15
;210) ,(
16
;112
,(
)18
;63) ,(
21 ;42) ,(
28
;28
,(
)42
;21),(
63
;18) ,(
112
;16
,(
)210 ;15 (
Trang 16Chuyên đề 2: DÃY SỐ
Dãy số là một trong những nội dung thường
ra trong các đề thi HSG 9 Để làm tốt nội dung này yêu cầu hsinh cần phải nắm vững các kỹ thuật xử lý, nhập xuất mảng một chiều; cách thức tạo ra một mảng mới thỏa mãn một điều kiện nào đó.
Trang 17một dãy và in ra màn hình đoạn con [i, j] có tổng các phần tử là nhỏ nhất (nếu có nhiều phương án thì chỉ đưa ra 1 phương án)
Ví dụ : Dãy nhập vào 2, -1, 3, -8, 5, -4, 3, -6, 2 , 2
Kết quả in ra là : -8, 5, -4, 3, -6 (Tồng Smin = -10)
Thuật giải: Xét tất cả các đoạn con tạo ra từ tập có n
Trang 18Procedure Inkq;
var i:integer;
S:longint;
Begin S:=0;
for i:=dau to cuoi do begin
S:=S+a[i]; write(a[i],' '); end;
writeln(' Tong S=',S);
readln;
end;
Begin Nhap;
Trang 19VD2_2 (HSG9-2010)
Dãy (an) được thiết lập theo cách thức: Với mỗi ai
đã xác định thì ai+1 là số nguyên dương nhỏ
nhất thỏa mãn hai tính chất sau:
ai+1 > ai
Tổng các chữ số của ai+1 bằng tổng các
chữ số của 4ai
Cho trước a1 và N Hãy xác định dãy a1, a2, , aN
Input (a1 và N) Output
4 5 4 7 19 49 79
Trang 20Thuật giải :
Mấu chốt của bài toán là tính tổng
các chữ số của một số t.
Với một số a[i] cho trước, tìm số
tiếp theo như sau:
Xét số so =a[i]+1 Nếu tổng các chữ số của số này thỏa mãn thì in
ra, nếu không thì xét số tiếp theo so+1 Lặp lại cho đến khi tìm
được
Trang 21Procedure Sinhday;
var so:longint; i: integer;
begin i:=1;
while i<N do begin
so:=a[i]+1;
while sumchuso(so)<>
sumchuso(4*a[i]) do inc(so); inc(i);
a[i]:=so;
end;
end;
BEGIN write('a[1],N ='); readln(a[1],N); sinhday;
Var a: array[1 100] of longint;
N: integer;
function Sumchuso(t:longint): integer;
var temp,r :integer;
Trang 22*Mở rộng : Với các dãy số chẵn, số nguyên tố, số chính phương,…
Trang 24Chuyên đề 3: Các bài toán về bảng
Trang 25đường thẳng hoặc một đường chéo với nó Hãy xác định vị trí để đặt một chú mèo máy sao cho nó có thể nhìn thấy
được tất cả các chú chuột đã đặt trên bàn cờ
Input (dữ liệu vào): Nhập vào từ bàn phím N cặp số nguyên
x, y (0<x ≤ 8, 0< y ≤ 8, 0<N ≤ 8) thể hiện địa chỉ của các chú chuột máy đặt trên bàn cờ.
- Output (dữ liệu ra): Ghi ra file text có tên là
MOUSECAT.OUT, gồm một dòng ghi cặp số (x, y) là vị trí
đặt chú mèo máy( trường hợp có nhiều vị trí đặt thì chỉ cần
Trang 27var a: array[1 8,1 8] of integer;
f:text;
N,i,j:integer;
x,y : array[1 8] of integer;
Procedure DDau_cheo_trai (h,c:integer);
while x>1 do begin
dec(x); inc(a[x,y]);
end;
x:=h; y:=c;
while (x<8) do begin
dec(y); inc(a[x,y]);
end;
x:=h; y:=c;
while (y<8) do begin
inc(y); inc(a[x,y]);
Trang 28DDau_hang(x[i],y[i]);
Inkq;
END
Trang 29Cho bảng A kích thước MxN Phần tử Aij được gọi là phần tử yên ngựa nếu nó là phần tử nhỏ nhất trong hàng của nó đồng thời là phần tử lớn nhất trong cột của nó Ví dụ trong bảng số sau đây:
Trang 30Chuyên đề 4 : Sắp xếp
Các bài toán liên quan đến kỹ thuật sắp xếp được vận dụng trong các trường
hợp tìm nghiệm tối ưu
Chương trình không yêu cầu học sinh
biết các kỹ thuật sắp xếp với các độ
phức tạp khác nhau Học sinh chỉ cần
năm vững một hoặc hai kỹ thuật sắp
xếp cơ bản là được
Trang 31Trong đợt tổ chức đi tham quan Ban tổ chức hội thi Tin học trẻ tổ chức cho N đoàn mỗi đoàn đi thăm quan một địa điểm khác nhau Đoàn thứ i đi thăm quan địa điểm có cự ly là di (i=1,2, , N) Hội thi
có M xe taxi đánh số từ 1 đến M (M≥N) để phục vụ việc đưa các đoàn
đi thăm quan Xe thứ j có mức tiêu thụ xăng là vj cho 1 đơn vị cự ly
Yêu cầu: Hãy chọn N xe để phục vụ việc đưa các đoàn đi thăm quan,
mỗi xe chỉ phục vụ một đoàn, sao cho tổng chi phí xăng cần sử dụng
là ít nhất
Dữ liệu vào: File văn bản P2.INP:
- Dòng đầu tiên chứa hai số nguyên dương N, M (N≤M≤200);
- Dòng thứ hai chứa các số nguyên dương d1, d2, , dN
- Dòng thứ ba chứa các số nguyên dương v1, v2, , vM
Kết quả: Ghi ra file văn bản P2.OUT:
-Dòng đầu tiên chứa tổng lượng xăng cần cho việc đưa các đoàn đi
Trang 33VD2_4 (HSG12-2010)
Trong thời niên thiếu, ai cũng đã từng chơi trò chơi “rồng, rắn lên mây” Trong trò chơi này, các người chơi thường đặt tay lên vai nhau để tạo thành một
hàng dài làm “rắn” để chơi đuổi bắt
Trong quá trình đuổi bắt, “rắn” có thể bị đứt thành nhiều khúc và để tiếp tục trò chơi, cần phải nối các khúc lại với nhau Hai khúc được nối lại với nhau thông qua một người chơi, người chơi này khi đó sẽ đứng cuối của một khúc này đồng thời lại đứng đầu của một khúc kia Để biết người chơi nào sẽ là tác
nhân nối hai khúc, người quản trò sẽ phát cho người đó một lá cờ làm hiệu Người có cờ hiệu được phép nối vào đuôi của một khúc hoặc yêu cầu một khúc nào đó nối vào sau mình Hãy giúp người quản trò phát ít cờ nhất nhưng vẫn đủ để nối lại các khúc đã đứt
Dữ liệu vào : File BL2.INP Dòng đầu ghi số N (2≤N ≤ 20000), để chỉ N khúc
đã bị đứt Dòng tiếp theo ghi N số dương, mỗi số thứ i trong dòng này để chỉ
số người chơi có trong khúc thứ i
Dữ liệu ra : Đưa ra màn hình một số nguyên duy nhất, là số cờ tối thiểu mà
người quản trò phải phát
Ví dụ :
Trang 34Chuyên đề 5: Giải toán Casio
Trong quá trình bồi dưỡng giáo viên nên đưa một số bài toán sử dụng máy
tính Casio bằng cách giải bằng ngôn
ngữ lập trình Pascal để gây hứng thú
trong học tập.
Một số bài toán kiểu này cũng đã được ra thi học sinh giỏi 9 cấp tỉnh.
Trang 35VD1_5 (Thi Casio khu vực 2006-THPT)
Biết dãy số {Un} được xác định như sau:
U1=1; U2 =2; Un+2= 3*Un+1 + 2*Un Tính U15
Trang 36VD2_5 : (Thi Casio khu vực-THCS-2006)
Tìm tất cả các số tự nhiên n (1000<n<2000) sao cho với mỗi số đó thì số an=
Trang 37Viết chương trình tìm số nguyên dương T nhỏ nhất có N chữ số, biết rằng khi chia T cho 19 thì dư 13 và khi chia T cho 31 thì dư 12.
Yêu cầu : Nhập từ bàn phím số nguyên dương
trường hợp không tồn tại, phải thông báo ra
màn hình “ Khong ton tai”
Ví dụ:
Trang 38Xin chân thành cám n! ơ