hdu 2295 Radar DLX 重複覆蓋問題

2021-09-06 06:38:52 字數 1372 閱讀 8635

題意:乙個國家有n個城市,m個雷達,我們同時操作的雷達數最多為k,給出城市與國家的座標,求小於等於k的操作下,雷達覆蓋的能夠覆蓋所有城市的最小覆蓋半徑。

思路:城市作為列,雷達作為行,二分列舉雷達的半徑+dlx重複覆蓋求解。

#include #include 

#include

#include

using

namespace

std;

//freopen("data.in","r",stdin);

#define cl(a,num) memset((a),(num),sizeof(a))

#define inf 0x7f7f7f7f

#define m 55

#define n 55

#define maxn 3317

const

double eps = 1e-8

;const

int head = 0

;struct

nodecity[n],rar[m];

intu[maxn],d[maxn],l[maxn],r[maxn],c[maxn],row[maxn];

ints[n];

bool

hash[m];

intn,m,k;

intsize;

int dblcmp(double

x)bool isok(int a,int b,double

r)void

init()

l[head] = n; r[head] = 1

; r[n] =head;

size = n + 1;}

void build(int

r)

else

size++;}}

}}void remove(int

ci)}

void resume(int

ci)}

inth()}}

}return

res;

}bool dfs(int

dep)

}for (i = d[ci]; i != ci; i =d[i])

if (dfs(dep + 1)) return

true

;

for (j = l[i]; j != i; j =l[j])

resume(i);

}return

false;}

intmain()

else l =mid;

}printf(

"%.6lf\n

",ans);

}return0;

}

hdu2295DLX重複覆蓋 二分

題目是說 給了n個城市 m個雷達 你只能選擇其中的k個雷達進行使用 你可以設定每個雷達的半徑,最後使得所有城市都被覆蓋,要求雷達的半徑盡可能的小 所有雷達的半徑是一樣的 二分最小半徑,然後每次重新建立這個十字鍊錶,跑dlx include include include include includ...

HDU 1258 Sum It Up 雜湊表判重

判重雜湊表解決 include using namespace std const int nmax 15 const int inf 10007 int t,n int a nmax int flag int hash inf 15 int head inf int head,next int a...

hdu 4277 爆搜 set 去重

題目 給出n條邊,每條邊有一定的長度,現在要用所有的邊圍成三角形,問能夠圍成多少個不同的三角形 三邊至少有一邊不等 include include include includeusing namespace std int n,t,edge 17 int ans,sum set s int min...