題解:這個題屬於走迷宮型別問題的乙個公升級版吧,不同之處在於一秒鐘小a走一步,小b可以走兩步,這兩種事件是同時發生的,所以我們每秒鐘讓a擴散一步,讓b擴散兩步。
兩個人走過的路徑分別用
visited[0][maxn][maxn]
visited[1][maxn][maxn]
來進行表示。
小a走的時候
1.檢查自己的地圖(防止重複走乙個地方)
2.檢查小b的地圖,看看小b是否走過這個地方(如果小b走過了,那就可以視為他們相遇了)
同理可得:
小b走的時候
1.檢查自己的地圖(防止重複走乙個地方)
2.檢查小a的地圖,看看小a是否走過這個地方(如果小a走過了,那就可以視為他們相遇了)
對於廣搜,因為是兩個點開始擴散,所以可以開乙個
queue q[2]
;
用0表示小a,1表示小b
本題還要注意一下讀入的問題,細節比較多一些。
/*keep on going never give up*/
#pragma gcc optimize(3,"ofast","inline")
#include
const
int maxn =
1010
;const
int maxn =
0x3f3f3f3f
;const
int minn =
0xc0c0c00c
;typedef
long
long ll;
const
int mod =
100000000
;using
namespace std;
int dx[8]
=;int dy[8]
=;bool visited[2]
[maxn]
[maxn]
;char maps[maxn]
[maxn]
;int n,m;
struct wazxy};
queue q[2]
;bool
bfs(
int x)}}
return
false;}
intmin_steps()
return-1
;}intmain()
if(maps[i]
[j]==
'd')}}
int ans=
min_steps()
;if(ans==-1
) cout<<
"no"
return0;
}
頻寬計算方法 及 大B與小b 說明
在電腦科學中,bit是表示資訊的最小單位,叫做二進位制位 一般用0和1表示。byte叫做位元組,由8個位 8bit 組成乙個位元組 1byte 用於表示計算機中的乙個字元。bit與byte之間可以進行換算,其換算關係為 1byte 8bit 或簡寫為 1b 8b 在實際應用中一般用簡稱,即1bit簡...
頻寬計算方法 及 大B與小b 說明
在電腦科學中,bit是表示資訊的最小單位,叫做二進位制位 一般用0和1表示。byte叫做位元組,由8個位 8bit 組成乙個位元組 1byte 用於表示計算機中的乙個字元。bit與byte之間可以進行換算,其換算關係為 1byte 8bit 或簡寫為 1b 8b 在實際應用中一般用簡稱,即1bit簡...
頻寬計算方法 及 大B與小b 說明
在電腦科學中,bit是表示資訊的最小單位,叫做二進位制位 一般用0和1表示。byte叫做位元組,由8個位 8bit 組成乙個位元組 1byte 用於表示計算機中的乙個字元。bit與byte之間可以進行換算,其換算關係為 1byte 8bit 或簡寫為 1b 8b 在實際應用中一般用簡稱,即1bit簡...