分析這道題直接兩次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...