每個點向它旁邊的點連邊,相同dis為0,不同為1。
n=3,m=3每個點的標號如下:
1 2 3
4 5 6
7 8 9
這樣安排標號唯一,標號計算公式$(i-1)* m+j$,連邊時判斷一下邊界,因為題目預設座標是從(0,0)開始,所以方便做題,將讀入的起點和終點座標都加1。然後跑個最短路就可以了
#include#include#include
#include
using
namespace
std;
intn,m;
intex,ey,px,py;
int a[505][505
];char ch[255
];struct
nodee[
20000005
];int head[250005],cnt,dis[250005],in[250005
];inline
void add(int
from,int to,int
dis);
head[
from]=cnt;
}void
spfa()}}
printf(
"%d\n
",dis[(px-1)*m+py]);
}int
main()
}for(int i=1;i<=n;++i)
for(int j=1;j<=m;++j)
scanf(
"%d%d%d%d
",&ex,&ey,&px,&py);
ex++;ey++;px++;py++;
spfa();
}return0;
}
P4554 小明的遊戲
小明的遊戲就是玩棋盤?和這道題有啥區別啊。如果不加多組測試資料,這道題可能還沒那道題難。好了,吐槽結束 首先還是按照比較常規的思路來想,上下左右都已經寫出來了,dfs和bfs沒得跑,蒟蒻不太會處理bfs,因為實在沒有想出來怎麼寫,所以第一次我寫的是dfs 記憶化搜尋,水了60分,因為dfs本來就慢,...
P4554 小明的遊戲 洛谷 雙端佇列BFS
最近沒有更新部落格,全是因為英語,英語太難了qwq 洛谷春令營的作業我也不會 我是弱雞 隨機跳了2個題,難度不高,還是講講吧,學學新演算法也好 可以拿來水部落格 第一題就是這個小明的遊戲 小明最近喜歡玩乙個遊戲。給定乙個 n m的棋盤,上面有兩種格仔 和 遊戲的規則很簡單 給定乙個起始位置和乙個目標...
4554 叛逆的小明
problem description 叛逆期的小明什麼都喜歡反著做,連看數字也是如此 負號除外 比如 小明會把1234它看成4321 把 1234看成 4321 把230看成032 032 32 把 230看成 032 032 32 現在,小明做了一些a b和a b的題目 a,b為整數且不含前導0...