15 UVA10982 Troublemakers
来源:互联网 发布:php 判断文件大小 编辑:程序博客网 时间:2024/05/16 17:45
n个人,m对之间有关系,现在要把n个人分成两组,使得每组内,有关系的人的对数最少。
我们可以有一个贪心的想法,对于每一个人,我们要么分在第一组,要么分在第二组。
那么分在哪一组能够使得当前与我有关系的人最少,就分在哪一组。
这样求得答案,满足题目要求即输出相应内容。
#include<cstdio>#include<cstring>bool e[105][105];int vis[105],T,n,m,i,j,x,y,cas=1,ans,cnt;int main(){ scanf("%d",&T); while(T--) { scanf("%d%d",&n,&m); memset(e,0,sizeof e); for(i=0;i<m;i++) { scanf("%d%d",&x,&y); e[x][y]=e[y][x]=1; } memset(vis,-1,sizeof vis); vis[1]=0; for(i=2;i<=n;i++) { x=y=0; for(j=1;j<i;j++) { if(e[i][j]) { if(vis[j]==0) x++; else if(vis[j]==1) y++; } } if(x>y) vis[i]=1; else vis[i]=0; } ans=cnt=0; for(i=1;i<=n;i++) { if(vis[i]) cnt++; for(j=1;j<i;j++) if(e[i][j]&&vis[i]==vis[j]) ans++; } printf("Case #%d: ",cas++); if(ans<=m/2) { int f=0; printf("%d\n",cnt); for(i=1;i<=n;i++) { if(!vis[i]) continue; if(f) putchar(' '); else f=1; printf("%d",i); } } else puts("Impossible."); puts(""); } return 0;}
0 0
- 15 UVA10982 Troublemakers
- 15
- 15
- 15
- 15
- 15
- 15
- 15
- 15
- 15
- 15
- 15
- 15
- 15
- 15
- 15
- 15
- 15
- POJ 1625 AC自动机+DP
- Docker 使用方法总结之:镜像
- innodb RC级别下加锁特殊情况
- 搬家了
- ViewPager的使用
- 15 UVA10982 Troublemakers
- mac nvm安装
- Java工具类:给程序增加版权信息
- LeetCode_Longest Common Prefix
- zoj3605 Find the Marble(三维dp)
- 做事靠定的科学解释
- NoSQL Databases: An Overview [待整理]
- php自定义函数
- android Camera照相机技术(一)