搜尋專題(複習)

2022-04-27 10:54:11 字數 2375 閱讀 5959

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。寬度優先搜尋...