题目描述:

有n对情侣(2n个人)围成一圈坐在桌子边上,每个人占据一个位子,要求情侣不能吃同一
种食物,并且桌子上相邻的三个人的食物必须有两个人是不同的,只有两种食物(1或者是2),问一种可行分配方式。

题解:

如果我们能把不能吃同一种食物的人连边,问题就变成二分图黑白染色
• 所以情侣关系等价于两者之间连一条边
• “每连续的三个人不能都一样”怎么办?
• 让第2i个人和第2i+1个人不能吃一样的食物即可(即1连2,3连4,5连6以此类推)
• 这样肯定是个二分图——2i和2i-1分别连了他两的情侣,情侣又分别连他两的一个邻居……
每次都是给这个可能存在的环加两个点,所以有环就一定不是奇环


蓝边表示情侣连边,红边表示相邻点对隔一对连一条
基础的二分图问题

代码:

#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
inline int read(){int s=0,w=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();//s=(s<<3)+(s<<1)+(ch^48);return s*w;
}
const int maxn=5e5+9;
vector<int>edge[maxn];
int a[maxn];
int b[maxn];
int col[maxn];
int vis[maxn];
void dfs(int now,int co)
{vis[now]=1;col[now]=co;for(int i:edge[now]){if(!vis[i]){if(co==1)dfs(i,2);else dfs(i,1);   }}
}
int main()
{int n;cin>>n;for(int i=1;i<=n;i++){cin>>a[i]>>b[i];edge[a[i]].push_back(b[i]);edge[b[i]].push_back(a[i]); }for(int i=1;i<=n*2;i=i+2){edge[i].push_back(i+1);edge[i+1].push_back(i);}for(int i=1;i<=2*n;i++){if(!vis[i])dfs(i,1);}for(int i=1;i<=n;i++){printf("%d %d\n",col[a[i]],col[b[i]]);}return 0;
}

CF741C Arpa’s overnight party and Mehrdad’s si相关推荐

  1. 图论(二分图构造) ---- 二分图的性质 C. Arpa’s overnight party and Mehrdad’s silent entering

    题目大意: 有 nnn 对情侣坐在 2n2n2n 个板凳上,板凳排成环形.每张凳子恰好坐一个人. 现在有两种食物分给他们.规定: 1.每对情侣中,俩人不能分到同一种食物: 2.环上任意三个相邻的人,不 ...

  2. codeforces741C Arpa’s overnight party and Mehrdad’s silent entering(二分图)

    题意: 有2n个人围成一圈坐在桌子边上,每个人占据一个位子,对应这2n个人是n对情侣,要求情侣不能吃同一种食物,并且桌子上相邻的三个人的食物必须有两个人是不同的,只有两种食物(1或者是2),问一种可行 ...

  3. CF - 741(C. Arpa’s overnight party and Mehrdad’s silent entering) 二分图构造

    题目链接 题意 已经给出情侣的座位编号,将两种饭分配给N对情侣.满足以下两个要求: 情侣之间不能吃相同的饭 座位号连续的三个人不能吃同一种饭 问是否存在满足的解. 思路 构造二分图 对应情侣的座位建边 ...

  4. CF741D Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths

    CF741D Arpa's letter-marked tree and Mehrdad's Dokhtar-kosh paths 好像这个题只能Dsu On Tree? 有根树点分治 统计子树过x的 ...

  5. Codeforces 741 D - Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths

    D - Arpa's letter-marked tree and Mehrdad's Dokhtar-kosh paths 思路: 树上启发式合并 从根节点出发到每个位置的每个字符的奇偶性记为每个位 ...

  6. 【Codeforces 741 B. Arpa's weak amphitheater and Mehrdad's 】+ 并查集 + 01背包

    B. Arpa's weak amphitheater and Mehrdad's valuable Hoses time limit per test 1 second memory limit p ...

  7. Codeforces Round #383 (Div. 2) D. Arpa's weak amphitheater and Mehrdad's valuable Hoses —— DP(01背包)

    题目链接:http://codeforces.com/contest/742/problem/D D. Arpa's weak amphitheater and Mehrdad's valuable ...

  8. Codeforces 742B B. Arpa’s obvious problem and Mehrdad’s terrible solution

    B. Arpa's obvious problem and Mehrdad's terrible solution time limit per test 1 second memory limit ...

  9. Codeforces 742A Arpa’s hard exam and Mehrdad’s naive cheat 打表+水题

    A. Arpa's hard exam and Mehrdad's naive cheat time limit per test 1 second memory limit per test 256 ...

最新文章

  1. 使用JDBC获取Oracle连接时报错
  2. Android 学习笔记四:创建工具栏按钮
  3. C#读取Excel表格数据到DataGridView中和导出DataGridView中的数据到Excel
  4. maven的Windows环境下安装配置
  5. 帧中继环境下ospf的使用(点到点模式)
  6. 界面无小事(六):来做个好看得侧拉菜单!
  7. 对当今流行的比赛评分系统的简单分类以及《评委计分系统-双屏版》的类别
  8. 用友U9 SOA Ready
  9. eclipse官方下载安装、JDK官方下载安装和环境变量配置
  10. IT数学逻辑之正余弦定理指正弦定理和余弦定理
  11. 【Qt】警告Missing reference in range-for with non trivial type
  12. Python——计算器
  13. 基于Java毕业设计在线答题系统源码+系统+mysql+lw文档+部署软件
  14. 固态硬盘性能测试成绩
  15. dell远程控制卡的原理
  16. ToolSettings app 实现系统本地升级
  17. 2021年线下“领航杯” MISC-《whatis.zip》解题WP
  18. android 仿微信demo————微信消息界面实现(服务端)
  19. 雷军微博晒晨练照片,暗示其已用上小米新机
  20. vue相关的开源项目

热门文章

  1. 有一说一,确实。。 | 今日最佳
  2. 2018 Kaggle 报告:在技术领域,女性从业者持续减少,00后开始展露头脚
  3. 史上首次!世界杯使用视频裁判
  4. mysql between 查询不出来_mysql的语句优化
  5. 如何用matlab消除谐波,如何在含有整次谐波和非整次谐波的信号中去除整次谐波?...
  6. selenium autoit java_Java+Selenium——AutoIt工具处理文件上传
  7. oracle 产看执行计划_ODBA 技能SPM计划
  8. micropython安装ros_ROS2与STM32入门教程-microROS的linux版本
  9. 量子计算机设计理念和思路,课程的设计理念与思路
  10. gif分解工具_Python之GIF图倒放,沙雕快乐源泉