BZOJ2530 : [Poi2011]Party
2015-06-16 22:35
337 查看
注意到随机一组贪心解得到的团的大小不小于$\frac{N}{3}$的概率是很大的,所以一直随机下去,直到找到一组解即可,随机次数是常数级别的,所以复杂度为$O(n^2)$。
#include<cstdio> #include<cstdlib> #define N 3010 int n,m,i,j,k,a ,del ,fin ;bool g ; inline void swap(int&a,int&b){int c=a;a=b;b=c;} inline void read(int&a){char c;while(!(((c=getchar())>='0')&&(c<='9')));a=c-'0';while(((c=getchar())>='0')&&(c<='9'))(a*=10)+=c-'0';} int main(){ read(n),read(m); while(m--)read(i),read(j),g[i-1][j-1]=g[j-1][i-1]=1; for(i=0;i<n;i++)a[i]=i; while(1){ for(i=0;i<n;i++)swap(a[i],a[std::rand()%n]); for(i=0;i<n;i++)del[i]=0; for(k=i=0;i<n;i++)if(!del[i])for(k++,j=i+1;j<n;j++)if(!g[a[i]][a[j]])del[j]=1; if(k>=n/3){ for(i=j=0;i<n;i++)if(!del[i])fin[j++]=a[i]; for(i=0;i<n/3;i++)printf("%d ",fin[i]+1); return 0; } } }
相关文章推荐
- 关于java日期类Date,DateFormat,SimpleDateFormat,Calendar总结
- Java类加载器简介
- 《你的灯还亮着吗》阅读笔记二
- android adb
- 黑马程序员----Java基础之面向对象(最终篇)
- 2.13带平滑线且带数据标签的散点图
- Django连接远程mysql数据库
- jboss端口说明
- c#之Async、Await剖析
- 一套Oracle SQL练习题及答案
- ubuntu常用命令
- Spark、Hadoop、Hive安装学习
- HTML paragraph
- iOS中block实现的探究
- linux用户的秘密之login.defs文件详解
- git 创建远程仓库
- 函数模板
- oracle移动数据/修改数据文件路径
- Android内存优化之内存缓存
- JXL基本操作