bzoj4080 Wf2014 Sensor Network 随机化
来源:互联网 发布:银行存款怎样划算知乎 编辑:程序博客网 时间:2024/06/05 14:33
题意:给你一个点集,让你选出最多的点同时保证任意两个点之间距离不能超过d。
一开始一看见n<=100以为直接暴力加入,然后每一次在已经加入的里面比较,结果WA了。。其实挺明显的,肯定不是最优的啊= =,要保证正确性只能2^100。。。
所以就懵逼了,题解是随机化一个序列以后贪心来,感觉整个人都不好了。。还有这种选学算法= =
#include<cstdio>#include<algorithm>#include<cstring>#include<bitset>#define fo(i,a,b) for(int i=a;i<=b;i++)#define fd(i,a,b) for(int i=a;i>=b;i--)using namespace std;const int N=105+5;int n,m;int d,w[N];bitset<N>ans,now;bool f[N][N],vis[N];struct node{ int x,y;}a[N];inline int getdis(node a,node b){ return (a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y);}inline void Rand(){ fo(i,1,n)swap(w[i],w[rand()%n+1]);}inline void solve(){ memset(vis,0,sizeof(vis)); now.reset(); fo(i,1,n) if (!vis[i]) { now.set(w[i]); fo(j,i+1,n) if (!f[w[i]][w[j]])vis[j]=1; } if (now.count()>ans.count())ans=now;}int main(){ scanf("%d%d",&n,&d); fo(i,1,n) { scanf("%d%d",&a[i].x,&a[i].y); w[i]=i; } fo(i,1,n-1) fo(j,i+1,n) if (getdis(a[i],a[j])<=d*d)f[i][j]=f[j][i]=1; fo(i,1,1000)Rand(),solve(); printf("%d\n",ans.count()); fo(i,1,n)if (ans[i])printf("%d ",i);}
阅读全文
0 0
- bzoj4080 Wf2014 Sensor Network 随机化
- BZOJ 4080 Wf2014 Sensor Network 随机化
- BZOJ 4080 [Wf2014]Sensor Network 随机化
- bzoj 4080: [Wf2014]Sensor Network 随机化
- BZOJ 4080: [Wf2014]Sensor Network 随机化求最大团
- [最大团 随机化 || 二分图最大独立集] BZOJ 4080 [Wf2014]Sensor Network
- [bzoj 4080] Wf2014 Sensor Network
- poj 2531 Network Saboteur(随机化)
- POJ 2531 Network Saboteur 随机化算法/dfs
- UVALive - 4960 Sensor network(生成树+LCA)
- UVa 12275 Sensor network 生成树
- uva 12275 - Sensor network(生成树)
- UVALive 4960Sensor network(MST+LCA)
- UVALive 4960 Sensor network(MST+LCA)
- 随机化
- POJ-2531(随机化 or dfs)(Network Saboteur )
- POJ 2531 Network Saboteur(DFS & 随机化)解题报告
- POJ2531-Network Saboteur-暴力枚举+记忆化/dfs/随机化乱搞
- Http协议详解及浏览器里含义,jmeter、postman工具对应内容
- 安卓设置热点ssid和密码
- sql server中根据地图经纬度算距离
- hdu6038-思维-2017多校(2)-Function
- 【HDU】6045
- bzoj4080 Wf2014 Sensor Network 随机化
- 多校赛2017 R2
- Ajax基础
- iReport默认参数和变量的含义解析【转】
- Python入门系列——第13篇
- HDU6050-Funny Function
- 小知♂识 除法取模 逆元♂
- Spring Boot(一):HelloWorld
- bzoj2160 拉拉队排练 manacher+差分