Professional Documents
Culture Documents
1132 - Bai Gui Trang Web2015
1132 - Bai Gui Trang Web2015
A. M U
I. L do chn ti
T hc tp, nghin cu l mt nhim v quan trng ca mi gio vin nng
cao trnh chuyn mn, c bit t hc, t nghin cu c vai tr quan trng trong
vn bi dng hc sinh gii.
V vy, trong nm hc ny ti nghin cu chuyn : Cc thut ton tm
kim trn th v mt s bi tp ng dng.
II. Mc tiu nghin cu ca ti
Tm hiu t tng, thut ton tm kim trn th: DFS BFS.
Mt s bi tp ng dng:
+ bi
+ tng thut ton
+ Chng trnh
+ Xy dng b test
III. Phng php nghin cu
- Nghin cu c s l thuyt
- Thu thp thng tin, ti liu
- Tm hiu mt s bi ton ng dng
IV. Gii hn, phm vi nghin cu ca ti
Chuyn bi dng hc sinh gii, c mt s bi kh ch p dng cho i
tng hc sinh chn i tuyn v bi dng quc gia.
1
Duyn
Trng N Thy
B. NI DUNG
I. C s l thuyt
1. Thut ton tm kim theo chiu su
T tng chnh ca thut ton l: Gi s chng ta ang xt trn th G(V,E).
T mt nh u thuc V hin thi no ta s thm ti nh k v ca u v qu trnh
c lp li i vi nh v. bc tng qut, gi s hin ti ang xt nh u 0, chng
ta s c hai kh nng s xy ra:
+ Nu nh tn ti mt nh v 0 k vi u m cha c thm th nh v 0 s tr
thnh nh thm v qu trnh tm kim li bt u t nh v0 .
+ Ngc li, nu mi nh k vi u0 u thm th ta s quay tr li nh m
trc ta n nh u0 tip tc qu trnh tm kim.
Nh vy, trong qu trnh thm nh bng thut ton tm kim theo chiu su,
nh c thm cng mun cng sm c duyt xong (C ch Last In First Out Vo sau ra trc). Do , ta c th t chc qu trnh ny bng mt th tc quy
nh sau:
Procedure DFS(u);
Begin
Visit(u);
Daxet[u]:=True;
For v thuc K(u) do
if not Daxet[v] then DFS(v);
End;
V th tc duyt h thng ton b nh ca th s l:
Procedure Find;
Begin
Fillchar(Daxet,SizeOf(Daxet),False);
For u thuc V do
if not Daxet[u] then DFS(u);
End;
D nhn thy rng, mi ln gi DFS(u) th ton b cc nh cng thnh phn lin
thng vi u s c ving thm. Th tc Visit(u) l thao tc trn nh u trong tng bi
ton t ra c th.
2
Duyn
Trng N Thy
Trng N Thy
Trng N Thy
Trng N Thy
II. Bi tp ng dng
1. Bi c ngon nht VBGRASS
Bessie d nh c ngy s nhai c xun v ngm nhn cnh xun trn cnh ng
ca nng dn John, cnh ng ny c chia thnh cc vung nh vi R (1 <= R
<= 100) hng v C (1 <= C <= 100) ct. Bessie c g c th m c s khm c
trn cnh ng.
Mi khm c trn bn c nh du bng mt k t # hoc l 2 k t #
nm k nhau (trn ng cho th khng phi). Cho bn ca cnh ng, hy ni
cho Bessie bit c bao nhiu khm c trn cnh ng.
V d nh cnh ng di dy vi R=5 v C=6:
.#....
..#...
..#..#
...##.
.#....
Cnh ng ny c 5 khm c: Mt khm hng u tin, mt khm to bi
hng th 2 v th 3 ct th 2, mt khm l 1 k t nm ring r hng 3, mt
khm to bi ct th 4 v th 5 hng 4, v mt khm cui cng hng 5.
D liu
Dng 1: 2 s nguyn cch nhau bi du cch: R v C
Dng 2..R+1: Dng i+1 m t hng i ca cnh ng vi C k t, cc k t l
# hoc . .
Kt qu
Dng 1: Mt s nguyn cho bit s lng khm c trn cnh ng.
V d:
VBGRASS.INP
VBGRASS.OU
T
56
.#....
..#...
..#..#
...##.
.#....
6
Duyn
Trng N Thy
tng: S lng cc khm c c th xem l s vng lin thng trn th. Trong
, khi a[i,j] l c v 4 nh ln cn ca n, nu cng l c th tn ti ng i t
a[i,j] n nh .
Uses math;
Const
fi
fo
='VBGRASS.INP';
='VBGRASS.OUT';
MAXN
= 200;
Var
f : array [0..MAXN+1,0..MAXN+1] of boolean;
m,n
: longint;
Res
: longint;
Procedure Init();
begin
Fillchar(f,sizeof(f),false);
Res := 0;
end;
Procedure ReadData();
var i,j : longint;
c
: char;
begin
Readln(m,n);
for i:=1 to m do
begin
for j:=1 to n do
begin
read(c);
f[i,j] := c = '#';
end;
readln;
end;
end;
BEGIN
assign(input,fi); reset(input);
assign(output,fo); rewrite(output);
Init();
ReadData();
Solve();
Writeln(Res);
7
Duyn
Trng N Thy
8
Duyn
Trng N Thy
2. Gm c
Bessie rt yu bi c ca mnh v thch th chy v chung b vo gi vt sa
bui ti. Bessie chia ng c ca mnh l 1 vng hnh ch nht thnh cc vung
nh vi R (1 <= R <= 100) hng v C (1 <= C <= 100) ct, ng thi nh du ch
no l c v ch no l . Bessie ng v tr R_b,C_b v mun n c theo cch ca
mnh, tng vung mt v tr v chung 1,1 ; bn cnh ng i ny phi l
ngn nht.
Bessie c th i t 1 vung sang 4 vung khc k cnh.
Di y l mt bn v d [vi ('*'), c ('.'), chung b ('B'), v Bessie ('C')
hng 5, ct 6] v mt bn cho bit hnh trnh ti u ca Bessie, ng i c
dnh du bng ch m.
Bn
ng i ti u
1 2 3 4 5 6 <-ct
1 2 3 4 5 6 <-ct
1B...*.
1Bmmm*.
2..*...
2..*mmm
3.**.*.
3.**.*m
4..***.
4..***m
5*..*.C
5*..*.m
Bessie n c 9 c.
Cho bn , hy tnh xem c bao nhiu c m Bessie s n c trn con
ng ngn nht tr v chung (tt nhin trong chung khng c c u nn ng c
tnh nh)
D liu
Dng 1: 2 s nguyn cch nhau bi du cch: R v C
Dng 2..R+1: Dng i+1 m t dng i vi C k t (v khng c du cch) nh
ni trn.
Kt qu
Dng 1: Mt s nguyn l s c m Bessie n c trn hnh trnh ngn nht
tr v chung.
9
Duyn
Trng N Thy
V d
VMUNCH.INP
VMUNCH.OUT
56
9
B...*.
..*...
.**.*.
..***.
*..*.C
tng : Bfs bt u t nh B, vi bng f[i,j] l di ng i ngn nht t nh
(i,j) n nh B, kt qu l f[cx,cy];
Const
fi
fo
MAXN
tx
ty
='VMUNCH.inp';
='VMUNCH.out ';
=1500;
: array [1..4] of longint = (1,0,-1,0);
: array [1..4] of longint = (0,1,0,-1);
Type
pos=record
x,y : longint;
end;
Var
a : array [0..MAXN,0..MAXN] of boolean;
d : array [1..MAXN,1..MAXN] of longint;
q : array [1..MAXN*MAXN] of pos;
r,c,cx,cy
: longint;
Procedure nhap;
var i,j
: longint;
t
: char;
begin
assign(input,fi);reset(input);
fillchar(a,sizeof(a),false);
readln(r,c);
for i:=1 to r do
begin
Procedure xuat;
begin
assign(output,fo);rewrite(output);
10
Duyn
Procedure xuly;
var bot,top,x,y,i : longint;
u
: pos;
begin
bot:=1;top:=1;
repeat
u:=q[top];inc(top);
a[u.x,u.y]:=false;
for i:=1 to 4 do
begin
x:=u.x+tx[i];y:=u.y+ty[i];
if a[x,y] then
begin
a[x,y]:=false;
inc(bot);
q[bot].x:=x;
q[bot].y:=y;
d[x,y]:=d[u.x,u.y]+1;
end;
end;
until top>bot;
end;
Trng N Thy
writeln(d[cx,cy]-1);
close(output);
end;
BEGIN
NHAP;
XULY;
XUAT;
END.
3. Mch in
Mch in l mt bng gm cc nt nm trn cc nt ca mt li hnh ch nht v
cc on dy dn noi cc nt k nhau (theo chiu ng hoc ngang). Mch c gi
l lin thng nu hai nt bt k c ni vi nhau bi dy cc on dy dn. Cho mt
mch in trong c mt s on dy dn ni mt lot cc cp nt k nhau. Cn
tm cch b sung cc on dy n m bo mch in thu c l lin thng v vi
chi ph nh nht. Bit rng: chi ph ca on dy ni theo chiu ng l 1, cn theo
chiu ngang l 2.
Hnh 1
Hnh 2
11
Duyn
Trng N Thy
Q3 (i,j+1)
.(i,j)
Q2 (i+1,j)
12
Duyn
Trng N Thy
Trng N Thy
Trng N Thy
Trng N Thy
Trng N Thy
4. i v
Trong ngy hi th thao vn ho ti sn vn ng trung tm thnh ph s c mt
trn u bng ca i CHAMPION gp i ngi sao thnh ph v mt bui biu
din ca dn nhc ni ting OLIMPIAD. V vo xem s c pht cho tng c nhn
ca cc tp th c nhiu thnh tch trong phong tro th thao vn ho, mi tp th
c pht mt loi v, trn v c ghi tn c th phc v cho vic gi gn an ninh
trt t.
Tp th sinh vin ca mt trng gm N ngi nhn v xem bng , nhng tt
c li mun i xem ca nhc. Rt may l Ban t chc cho php tp th i v theo hnh
thc sau: nhng ngi c v phi tham gia mt s cng vic chun b, mi cng vic
cn ng M ngi thc hin. Sau khi hon thnh cng vic, ai c v xem bng
c i thnh v xem ca nhc v ngc li, ai c v xem ca nhc c i thnh v
vo xem bng . Trng on sinh vin quyt nh t chc cho cc bn i lao ng
17
Duyn
Trng N Thy
TICKET.OUT
-1
5
3
Trng N Thy
Trng N Thy
Trng N Thy
const
tfi
tfo
maxN
var
a
fi,fo
N
Phan
LT
M
ok
x
Lat
T
delta
GROUP.OUT
32
135
24
=
=
'GROUP.INP';
'GROUP.OUT';
=
100;
:
:
:
array[1..maxN,1..maxN] of byte;
text;
integer;
:
array[1..maxN] of integer;
:
array[1..maxN] of integer;
:
integer;
:
boolean;
:
array[1..2,1..maxN] of integer;
:
array[1..maxN] of boolean;
:
array[1..2] of integer;
:
integer;
procedure Docdl;
var i, u: integer;
begin
fillchar(a,sizeof(a),0);
assign(fi,tfi); reset(fi);
readln(fi,N);
for i:=1 to N do
begin
repeat
read(fi,u);
if u>0 then a[u,i]:=1;
until u=0;
readln(fi);
end;
close(fi);
for i:=1 to N do a[i,i]:=1;
end;
21
Duyn
Trng N Thy
Trng N Thy
Trng N Thy
24
Duyn
Trng N Thy
C. KT LUN
Phn bi tp ng dng trong chuyn ch t mc va tm hiu, cha phn
loi, cha c nhiu bi tp v cc nhiu bi tp mc kh, cha c nhiu bi tp
cc mc kh d khc nhau phn loi cho nhiu i tng hc sinh.
Hng pht trin chuyn : tm hiu thm nhiu bi tp nhiu mc khd, phn loi bi tp.
25
Duyn
Trng N Thy
26
Duyn
Trng N Thy