bfs採用結構體寫的話怎麼剪枝都超時,採用int型的話可以過,沒弄懂**出了問題
ac**:
#include
#include
#include
#include
using
namespace
std;
int visit[100005] = ;
int main()
if(t > 0 && !visit[t-1])
if(t < m &&!visit[t+1])
if(t*2
< 100005 && !visit[t*2])
}printf("%d\n",visit[m]);
}return
0;}
卡了的**:
兩次bfs,分別計算每個人到達每個kfc需要的最少時間
#include
using
namespace
std;
const
int maxn=205;
const
int inf=0x3f3f3f3f;
char ma[maxn][maxn];
int kfc[maxn][maxn];
int len[3][maxn*maxn];
bool vis[maxn][maxn];
int dirx=;
int diry=;
int n,m;
struct node
node;
bool check(int x,int y)
void bfs(int x,int y,int p)
for(int i=0;i<4;i++)}}
}int main()
}bfs(yx,yy,0);
memset(vis,0,sizeof(vis));
bfs(mx,my,1);
for(int i=0;i0][i]+len[1][i]));
}cout
<11
DFS專題 BFS複習
題意 從起始點出發,遇到坑不走,問能夠到達的點有多少個。思路 板子題。dfs或者bfs都可以 dfs includeusing namespace std define ll long long define clr a memset a,0,sizeof a const int maxn 1e5 ...
Tarjan專題總結複習
dfn x x 第一次被訪問的時間順序 時間戳 搜尋樹 每個節點只訪問一次,所有訪問過的邊 x,y 構成一棵搜尋樹 low x 定義為以下節點的時間戳的最小值 1.subtree x 中的節點。2.通過 1 條不在搜尋樹上的邊,能夠到達 subtree x 的節點。void tarjan int x...
0825 0903搜尋專題
poj1321 棋盤問題 dfs,雖然並不知道書上或者模板裡的dfs是什麼樣子,但是大概了解。vj掛了 在上面下回再補poj2251 dungeon master 這道題很苦逼的做了好幾天,交了幾十發,用兩種方式均返回tle。然後搜題解,說是要用bfs,啃書,發現原來自己一直不會bfs。寬度優先搜尋...