hdu4462 曼哈頓距離

2022-08-21 18:15:10 字數 662 閱讀 6819

題目大意:有n*n個點的田野,然後有k個點是用來放稻草人的,每個稻草人對周圍滿足曼哈頓距離的莊稼有保護作用

問最小的稻草人的個數能夠保護所有莊稼,如果不能保護則輸出-1

注意的地方:

1.放稻草人的點不需要計算,因為不是莊稼

2.可能存在0的解,也就是k=n*n時

思路:二進位制列舉所有情況,找到最小解

**如下:

#include#include#include#includeusing namespace std;

const int maxs = 51;

int n,k;

bool vis[maxs][maxs];

struct point

point[11];

bool judge(point p,int t,point goal)

bool solve(point p,int t)

return true;

}int main()

int total = 1

for(int i=1;iif(solve(p,cnt))

}if(ans==20)

printf("-1\n");

else

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

}}

HDU 4462(狀態壓縮,列舉)

題目 hdu 4462 題目大意 n n 50 的地圖上有稻草,有m 10 個點沒有稻草可以放稻草人,問最少放幾個稻草人,能守衛所有稻草。不能守衛所有稻草輸出 1。思路 列舉所有情況,就是列舉取多少個地方放稻草人,也就是 c n,1 c n,2 c n,n 1 include include inc...

HDU 4462 暴力二進位制列舉

1.題目鏈結。題目大意 john有一塊農田,現在他需要在農田k個空閒的位置放置驅逐bird的scarecrows。已知每個scarecrows各異保護的範圍是距離它哈密頓距離不超過k的地方,現在給你這k個點的座標,求出最少需要放置多少個scarecrows才能保護好整片農田。2.由於k很小,不超過1...

hdu5762曼哈頓距離

考慮一種暴力,每次列舉兩兩點對之間的曼哈頓距離,並開乙個桶記錄每種距離是否出現過,如果某次列舉出現了以前出現的距離就輸 yesyes 否則就輸 nono 注意到曼哈頓距離只有 o m o m 種,根據鴿籠原理,上面的演算法在 o m o m 步之內一定會停止.所以是可以過得.一組資料的時間複雜度 o...