HDU 2612 Find a way(兩次廣搜)

2021-09-26 13:16:43 字數 704 閱讀 2644

分析這道題直接兩次bfs,累加兩個人分別到達同一kfc的最短時間,然後遍歷找到到達所有kfc時間之和最小的位置。注意如果時間為0,說明沒有到達過。

#include#include#include#includeusing namespace std;

#define inf 0x3f3f3f3f

const int n = 2e2 + 10;

int n,m;

char a[n][n];

int vis[n][n],b[n][n];//b陣列儲存時間

int dir[2] = ,,,};

struct node

};bool isvalid(int x,int y)

void bfs(int x,int y)

} }}int main()

bfs(x1,y1);//兩次bfs

bfs(x2,y2);

int ans = inf;

for(int i = 0; i < n; i++)

for(int j = 0; j < m; j++)

if(a[i][j] == '@' && b[i][j]) ans = min(ans,b[i][j]);//注意b[i][j]不能為0

printf("%d\n",ans * 11);

} return 0;

}

hdu 1254 推箱子(兩次廣搜)

這題乙個下午了,現在終於過了 用了兩次廣搜,一次搜箱子到目標地,第二次搜人是可以到推動箱子的地方,要注意的是箱子可能會阻擋人,也可以來回的推。給幾組資料就知道了 這題資料都是後面討論版中提供的 4 30 0 0 0 0 1 0 2 3 1 4 1 5 50 3 0 0 0 1 0 1 4 0 0 0...

HDU 3400 兩次三分

這道題卡了我好久,一直不能證明他們的距離為什麼是先遞減後遞增,所以也不能想到三分 網上也沒有給出證明,嘗試用三分寫了下,注意是三分的e,f點在ab cd點上的佔的比例,這樣 比較簡單好看 include include include define eps 1e 8 struct point poi...

Hdu5126 stars 兩次CDQ分治

題意 簡化就是有兩種操作,一種是插入 x,y,z 這個座標,第二種是查詢 x1,y1,z1 到 x2,y2,z2 x1 x2,y1 y2,z1 z2 的長方體包含多少個點。解析 將查詢分成8個點,離線做,離散化z值,兩次cdq,第一次歸併排x值,第二次歸併排y值,z值用bit樹維護更新 查詢。inc...