今天的資料夾:10月19日.zip
今天中午講了一下昨天的題,還是有水平的。
下午複習搜尋,居然有noi難度的題,不過給了講解,也有參考程式,就不多說了。主要說說第一題。
t1:這是道bfs練手題,但都寫不對。第乙個難點是讀入,雖然題目中給的讀入順序很嚇人,但仔細想想,就類似於「字典序比較」了。在pascal中可以直接這樣讀入:
for i:=1**:to l do
for j:=1
to w do
for k:=1
to h do
read(a[i,j,k]);
1scan.pasprogram
scan;
2var
3l,w,h,m:longint;
4 a,b:array[-1..51,-1..51,-1..51] of
longint;
5i,j,k:byte;
6n,left,right:longint;
7x0,y0,z0:byte;
8 queue:array[1..1000000,1..3] of
byte;
9procedure
clear();
10begin
11 left:=1
;12 right:=0;13
end;
14procedure
enque(x,y,z:longint);
15begin
16inc(right);
17 queue[right,1]:=x;
18 queue[right,2]:=y;
19 queue[right,3]:=z;
20 b[x,y,z]:=n;
21end;22
procedure
deque();
23begin
24inc(left);
25end;26
function
check(t:longint):boolean;
27begin
28if (x0<1)or(x0>l)or(y0<1)or(y0>w)or(z0<1)or(z0>h) then
29exit(false);
30if b[x0,y0,z0]>0
then
31exit(false);
32if abs(a[x0,y0,z0]-t)<=m then
33exit(true)
34else
35exit(false);
36end;37
procedure
bfs(x,y,z:longint);
38begin
39clear();
40enque(x,y,z);
41while (left<=right) do
42begin
43 x:=queue[left,1
];44 y:=queue[left,2
];45 z:=queue[left,3
];46
deque();
47 x0:=x-1; y0:=y; z0:=z;
48if check(a[x,y,z]) then
49enque(x0,y0,z0);
50 x0:=x+1; y0:=y; z0:=z;
51if check(a[x,y,z]) then
52enque(x0,y0,z0);
53 x0:=x; y0:=y-1; z0:=z;
54if check(a[x,y,z]) then
55enque(x0,y0,z0);
56 x0:=x; y0:=y+1; z0:=z;
57if check(a[x,y,z]) then
58enque(x0,y0,z0);
59 x0:=x; y0:=y; z0:=z-1;60
if check(a[x,y,z]) then
61enque(x0,y0,z0);
62 x0:=x; y0:=y; z0:=z+1;63
if check(a[x,y,z]) then
64enque(x0,y0,z0);
65end;66
end;
67begin
68 assign(input,'
scan.in');
69reset(input);
70 assign(output,'
scan.out');
71rewrite(output);
72readln(l,w,h,m);
73for i:=1
to l do
74for j:=1
to w do
75for k:=1
to h do
76read(a[i,j,k]);
77 fillchar(b,sizeof(b),0
);78 n:=0;79
for i:=1
to l do
80for j:=1
to w do
81for k:=1
to h do
82if b[i,j,k]=0
then
83begin
84inc(n);
85bfs(i,j,k);
86end;87
writeln(n);
88close(input);
89close(output);
90end.
ACM集訓日記 8月10日
今天開啟了新的篇章,開始做暑假訓練二了,這個專題都是二分法和單調佇列和樹狀陣列,今天做了兩道二分,感覺還行,可能是因為我挑了兩道比較簡單的題目做了吧,二分法也算是複習了,二分法主要是三個值狀態的變化,最大high,最小low,中間mid的不停變化達成搜尋的目的,並且時間比列舉快,要注意的一點是要套用...
C 筆記2023年10月19日
楊輝三角 using system using system.collections.generic using system.linq using system.text namespace sj101901 列印數字 for int j 0 j i j else 需要計算空格的個數,防止大面積重...
10月29日10月30日
蜷縮著,蜷縮著,便是四年。丟去的是光陰,丟不去的是你。接連幾天看了一部網路 很久沒這樣看網路 了,原因是室友在看網路 的網劇 實在無聊就去翻了翻 結果 後面 癮就來了 3w 的txt檔案一天晚上看到了3點 第二天起來 搬工作室 頭也沒洗 任自己邋遢 狂躁 第二天晚上看到了1點 早上起來接著看 終於 ...