题目链接

题目大意是说输入数字n

然后告诉你第i个人都认识谁?

让你把这些人分成两堆,使这每个堆里的人都互相认识。

做法:把不是互相认识的人建立一条边,则构建二分图,两堆的人肯定都互相认识,也就是说,互相认识的两个人肯定不相连。

——代码

 1 #include <cstdio>
 2 #include <cstring>
 3
 4 using namespace std;
 5
 6 int n, cnt;
 7 int head[200001], to[200001], next[200001], color[101];
 8 bool know[101][101];
 9
10 void add(int x, int y)
11 {
12     to[cnt] = y;
13     next[cnt] = head[x];
14     head[x] = cnt++;
15 }
16 //把点染成1或-1
17 bool dfs(int u, int c)
18 {
19     int i, v;
20     color[u] = c;
21     for(i = head[u]; i != - 1; i = next[i])
22     {
23         v = to[i];
24         if(color[v] == c) return 0;
25         if(color[v] == 0 && !dfs(v, -c)) return 0;
26     }
27     return 1;
28 }
29
30 bool solve()
31 {
32     int i;
33     for(i = 1; i <= n; i++)
34      if(color[i] == 0 && !dfs(i, 1))
35       return 0;
36     return 1;
37 }
38
39 int main()
40 {
41     int i, j, x;
42     while(~scanf("%d", &n))
43     {
44         memset(know, 0, sizeof(know));
45         memset(color, 0, sizeof(color));
46         for(i = 1; i <= n; i++)
47           while(scanf("%d", &x) && x)
48           know[i][x] = 1;
49         memset(head, -1, sizeof(head));
50         for(i = 1; i <= n; i++)
51          for(j = i + 1; j <= n; j++)
52           if(!know[i][j] || !know[j][i])
53           {
54               add(i, j);
55               add(j, i);
56           }
57         if(solve()) printf("YES\n");
58         else printf("NO\n");
59     }
60     return 0;
61 }

View Code

转载于:https://www.cnblogs.com/zhenghaotian/p/6700893.html

Divide Groups(分组)(二分图染色)相关推荐

  1. Relation(NOIP模拟赛)(二分图染色)

    原题: Description 有n个人,编号为1àn,告诉你那些人之间是不友好的.现在,让你将这n个人分成两组,使得每一组之内的人是互相友好的,如果可以分成两组,则输出如何分组的,如果不可以分成两组 ...

  2. P1155 双栈排序(二分图染色)

    P1155 双栈排序(二分图染色) 题目描述 Tom最近在研究一个有趣的排序问题.如图所示,通过2个栈S1和S2,Tom希望借助以下4种操作实现将输入序列升序排序. 操作a 如果输入序列不为空,将第一 ...

  3. LOJ P1155 双栈排序 二分图染色 图论

    https://www.luogu.org/problem/show?pid=P1155 题解: https://www.byvoid.com/zhs/blog/noip2008-twostack 开 ...

  4. 【POJ 2942】Knights of the Round Table(点双连通分量,二分图染色)

    圆桌会议必须满足:奇数个人参与,相邻的不能是敌人(敌人关系是无向边). 求无论如何都不能参加会议的骑士个数.只需求哪些骑士是可以参加的. 我们求原图的补图:只要不是敌人的两个人就连边. 在补图的一个奇 ...

  5. uva 11080(二分图染色)

    题意:一个国王要派若干士兵看守王国.王国是一张无向图,然后士兵只能站在点上.每个士兵的看守范围是临近的点与边,士兵看管的的边不能重复.问最少用多少个士兵能使每个点和边都有人看守. 思路:这道题可以抽象 ...

  6. Codeforces Round #742 (Div. 2) F. One-Four Overload 构造 + 二分图染色

    传送门 文章目录 题意: 思路: 题意: 给你一个n∗mn*mn∗m的矩形,包含...和XXX,你有两种颜色,你需要给...染色使得每个XXX上下左右相邻的...其两种颜色个数相同,输出一种合法方案. ...

  7. 【Hitachi2020C】ThREE【构造】【二分图染色】

    传送门 题意:给一棵nnn个结点的树,构造一个nnn阶排列ppp,使得所有距离为333的点对(i,j)(i,j)(i,j)满足pi+pjp_i+p_jpi​+pj​和pipjp_ip_jpi​pj​至 ...

  8. AT2675 [AGC018F] Two Trees (构造+二分图染色+并查集)

    description 戳我看题目 solution 正解说是欧拉回路,但是于私而言非常难懂,如果有兴趣可以看香香mm的博客 定义一个点如果有偶数个儿子,就为奇点:如果有奇数个儿子,就为偶点 对于一个 ...

  9. [NOIP2010]关押罪犯(二分+二分图染色)

    传送门 大意:我们把图分为两部分,使得两部分中的内部边的最大权值最小. 思路:哎,拿到题的时候想了二分图染色,发现不好做,但我没有想到二分,只好最后去骗了一个30分.正确的思路是:首先我们要 去二分最 ...

  10. [NOIp2008] 双栈排序 (二分图染色 + 贪心)

    题意 给你一个长为 \(n\) 的序列 \(p\) ,问是否能够通过对于两个栈进行 push, pop(print) 操作使得最后输出序列单调递增(即为 \(1 \cdots n\) ),如果无解输出 ...

最新文章

  1. 企业分布式微服务云SpringCloud SpringBoot mybatis (九)服务链路追踪(Spring Cloud Sleuth)...
  2. java grizzly_java grizzly实现http服务器
  3. 目标代码文件、可执行文件和库
  4. 【转】Photoshop网站设计:DesignStudio
  5. 【iCore4 双核心板_ARM】例程二十:LWIP_TCP_CLIENT实验——以太网数据传输
  6. Qt图形界面编程入门(6)
  7. jsp示例-response页面重定向
  8. php数据库显示+ajax,如何使用PHP和AJAX显示MySQL数据库
  9. php mysql单引号 双引号_php单引号、双引号与数据库
  10. 包分类算法最坏情况下性能比较
  11. 办公自动化:PDF文件合并器,将多个PDF文件进行合并...
  12. linux 播放wav文件,Java音频无法在Linux中播放wav文件
  13. 是德科技34901A支持的量程
  14. 真正从零开始,TensorFlow详细安装入门图文教程!(linux)
  15. 计算机网络学习07(DNS域名系统详解)
  16. 文库网站的文件转换源码分享
  17. 测试开发面试题目(三)——测试用例、安卓苹果系统区别、小程序与app的区别
  18. POJ3621 Sightseeing Cows 分数规划 SPFA求最小环
  19. Pytorch 构建简单Neural Networks
  20. fx3g485通讯模块_三菱FX3U利用 FX3U-M485BD通讯模块与 MODBUS 设备通讯

热门文章

  1. macOS Big Sur系统Parallels Desktop无法启动的解决办法
  2. MacOS如何设置不使用时退出登录用户账号
  3. Default Folder X几个小技巧分享
  4. GitLab 9提供了子群组、部署面板和集成监控
  5. HDU2504 又见GCD
  6. C#程序员开发WinForm必须知道的 Window 消息大全(转)
  7. Android开发中如何加载API源码帮助开发
  8. 一个网站的诞生- MagicDict未来予想図1 [水平分割数据表的构想]
  9. 昨天,JetBrains 推出“下一代 IDE”,对标VS Code?快看看有哪些值得期待的功能!...
  10. 各位,请慎用 subList!原来这么多坑!!