题目链接

题意

已经给出情侣的座位编号,将两种饭分配给N对情侣.满足以下两个要求:

  1. 情侣之间不能吃相同的饭
  2. 座位号连续的三个人不能吃同一种饭

问是否存在满足的解.

思路

构造二分图

  1. 对应情侣的座位建边,保证情侣之间不吃一种饭
  2. [2i-1, 2i]建边,保证座位号相邻的3个人不全吃一种饭
#include <bits/stdc++.h>
const int maxn = 2e5 + 5;
const int inf = 0x3f3f3f3f;
const int mod = 1e9 + 7;
using namespace std;
vector<int> g[maxn];
void add(int u, int v) {g[u].push_back(v); g[v].push_back(u);
}
int color[maxn], flag;
void dfs(int u, int col) {color[u] = col;for (int i = 0; i < (int)g[u].size(); ++i) {int v = g[u][i];if (color[v] == -1) dfs(v, col^1);else if (color[v] == col) flag = -1;}
}
vector<pair<int,int>> all;
int main() {ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);int n;scanf("%d", &n);for (int i = 1, u, v; i <= n; ++i) {add(i*2-1, i*2);scanf("%d %d", &u, &v);all.push_back(make_pair(u, v));add(u, v);}fill(color, color+maxn, -1);flag = 1;for (int i = 1; i <= n*2; ++i) {if (color[i] == -1) dfs(i, 0);}if (flag == -1) puts("-1");else {for (auto it : all) {printf("%d %d\n", color[it.first]+1, color[it.second]+1);}}return 0;
}

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

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

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

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

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

  3. 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 思路: 树上启发式合并 从根节点出发到每个位置的每个字符的奇偶性记为每个位 ...

  4. 【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 ...

  5. CF741C Arpa’s overnight party and Mehrdad’s si

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

  6. 【CodeForces】741 D. Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths(dsu on tree)

    [题意]给定n个点的树,每条边有一个小写字母a~v,求每棵子树内的最长回文路径,回文路径定义为路径上所有字母存在一种排列为回文串.n<=5*10^5. [算法]dsu on tree [题解]这 ...

  7. 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的 ...

  8. 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 ...

  9. 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 ...

最新文章

  1. 【原创】谈谈线上CPU100%排查套路
  2. 如何使盘ISO图像文件
  3. 滴滴产品总监:如何合理设计弹窗以保证流畅的用户体验?
  4. [转]java垃圾回收之循环引用
  5. 自动Mock,让编写单元测试更简单
  6. 1小时零基础赚一千,教你完成图书管理系统,不用打代码绝对学得会![完整全站教学 IVX 实战第四篇]
  7. java 文件封装_Java 封装
  8. 好看的登录html界面,很漂亮的用户登录界面HTML模板
  9. JavaWeb查漏补缺
  10. 财务金额转换:小写金额转换成大写算法
  11. 股票量化分析(11)——第二个策略(5日移动均线、双均线、MACD策略)
  12. IROS2020 论文阅读
  13. Typora基本使用Markdown基本语法:精炼且详细
  14. WTG:给苹果电脑安装Windows
  15. 编译天嵌E8内核源码
  16. 要怎么在计算机里清除桌面内存,怎么清理电脑内存 最全电脑内存清理方法
  17. 【VS】vs2012解决nuget下载太慢的问题
  18. 北大java面试,北大青鸟java 面试--常见面试题(下)
  19. dota2游戏c语言,新手科普:Dota2操作按键设置和游戏设置详解
  20. Android开发实用小工具十——进制转换工具

热门文章

  1. HTML页面显示缩略所有空格为一格的方法
  2. 【网络流】网络流小总结
  3. tablefunc 行转列
  4. C#中,当鼠标移动到控件上,动态显示提示内容 - 用代码操作ToolTip
  5. 黑顶帽—lhMorpBlackTopHat
  6. pip安装软件时出现Command python setup.py egg_info failed with error code 1 in /tmp/pip-build*的解决方案
  7. Access数据库注入
  8. kali安装tools
  9. 河源市计算机组装竞赛,计算机组装大赛决赛圆满结束
  10. Swift之五个让Swift代码更加优雅的扩展