CF540C Ice Cave
題目有毒呀,翻譯有問題……
先碼了一個DFS 瞄了一眼題解裡都是dfs
const z:array[1..4,1..2]of -1..1=((1,0),(0,1),(-1,0),(0,-1));
var i,j,k:longint;
m,n:longint;
ch:char;
a,b:array[0..100,0..100]of boolean;
x,y:array[0..10000]of longint;
fx,fy,lx,ly:longint;
procedure yes;
begin
write('YES');
halt;
end;
procedure pd(x,y:longint);//判斷是否可以落到終點
var i:longint;
begin
if not a[x,y] then yes;//如果終點就是碎冰那麼可以直接掉下去
for i:=1 to 4 do if a[x+z[i,1],y+z[i,2]] then yes;//不是碎冰要看看旁邊有沒有浮冰
end;
procedure dfs(x,y:longint);//深度優先搜尋,就是暴力呀QAQ
var i:longint;
begin
if(x=lx)and(y=ly)then//到終點了
begin
pd(x,y);
exit;
end;
if not a[x,y] then exit;
a[x,y]:=false;
for i:=1 to 4 do
dfs(x+z[i,1],y+z[i,2]);
a[x,y]:=true;
end;
begin
readln(m,n);
for i:=1 to m do
begin
for j:=1 to n do
begin
read(ch);
if ch='X' then a[i,j]:=false;
if ch='.' then a[i,j]:=true;
end;
readln;
end;
readln(fx,fy,lx,ly);
a[fx,fy]:=true;
dfs(fx,fy);
write('NO');//到不了QAQ
end.
成功TLE祭
又費力改成bfs
const z:array[1..4,1..2]of -1..1=((1,0),(0,1),(-1,0),(0,-1));
var i,j,k:longint;
m,n,h,t:longint;
ch:char;
a,b:array[0..601,0..601]of boolean;
x,y:array[0..1000000]of longint;
fx,fy,lx,ly:longint;
procedure yes;
begin
write('YES');
halt;
end;
procedure no;
begin
write('NO');
halt;
end;
begin
readln(m,n);
for i:=1 to m do
begin
for j:=1 to n do
begin
read(ch);
if ch='X' then a[i,j]:=false;
if ch='.' then a[i,j]:=true;
end;
readln;
end;
readln(fx,fy,lx,ly);
a[fx,fy]:=true;
if (fx=lx)and(fy=ly) then//如果起點就是終點(玄學),那麼要去旁邊跳一下
begin
k:=0;
for i:=1 to 4 do
if a[lx+z[i,1],ly+z[i,2]] then inc(k);
if k<1 then no else yes;
end;
if a[lx,ly] then//如果終點是浮冰,那麼需要從一個浮冰過來,再去一個浮冰跳一下
begin
k:=0;
for i:=1 to 4 do
if a[lx+z[i,1],ly+z[i,2]] then inc(k);
if k<2 then no;//浮冰數>=2有可能才行
end else
a[lx,ly]:=true;//終點賦值為true
h:=1;
t:=1;
x[1]:=fx;
y[1]:=fy;
repeat//裸的bfs
if(x[t]=lx)and(y[t]=ly)then yes;
for i:=1 to 4 do
if a[x[t]+z[i,1],y[t]+z[i,2]] then
begin
inc(h);
a[x[t]+z[i,1],y[t]+z[i,2]]:=false;
x[h]:=x[t]+z[i,1];
y[h]:=y[t]+z[i,2];
end;
inc(t);
until t>h;
no;
end.
除了題目翻譯有問題,其他都還行…吧
相關文章
- TypeScript In ICETypeScript
- Ice works操作教程
- PHP中介軟體ICE,ICE的安裝配置,ICE常見編譯和執行(異常)錯誤PHP編譯
- P5098 [USACO04OPEN] Cave Cows 3
- D. Ice Cream Balls
- Ice系列--強大如我IceGrid
- @ice/stark-data原始碼解析原始碼
- 飛冰(ICE)4 月新動態
- WebRTC ICE 狀態與提名處理Web
- Ice系列--基於IceGrid的部署方案
- 飛冰 - ICE Design Pro 使用指南
- ZeroC ICE的遠端呼叫框架 Slice如何幫助我們進行Ice非同步程式設計(AMI,AMD)框架非同步程式設計
- ICE計劃提供比特幣期貨產品比特幣
- 我們自研的 Ice 規則引擎開源了
- WebRTC 之ICE淺談 | 內有乾貨免費下載Web
- 星巴克、微軟聯手ICE推出比特幣支付平臺微軟比特幣
- 英特爾制定了2019年的計劃:Ice Lake,Lakefield和Project AthenaProject
- 英特爾制定了2019年的計劃 : Ice Lake、Lakefield和Project AthenaProject
- 開源規則引擎——ice:致力於解決靈活繁複的硬編碼問題
- 百度AR新開源SLAM/VIO 核心元件ICE-BA 計算能力提速數十倍SLAM元件
- 2023年和2030年印度ICE和EV銷量市場份額預測對比(附原資料表)