Codeforces Codeforces Round #383 (Div. 2) E (DFS染色)
题目链接:http://codeforces.com/contest/742/problem/E
题意:
有一个环形的桌子,一共有n对情侣,2n个人,一共有两种菜。
现在让你输出一种方案,满足以下要求:
情侣间吃不同的菜
相邻的三个人不能都吃同一种菜
输出任意一个解:
先将相邻的两个人连边,这样就满足了3个人不吃同样一种菜。
情侣间连边。
图中就不存在奇数环。
那么就一定存在解。然后DFS染色就OK 了。
1 #include <bits/stdc++.h> 2 3 using namespace std; 4 5 const int maxn = 2*100010; 6 7 vector <int> G[maxn]; 8 int color[maxn]; 9 int b[maxn]; 10 int g[maxn]; 11 12 bool dfs(int u) 13 { 14 for(int i=0; i<G[u].size(); i++) 15 { 16 int v = G[u][i]; 17 if(color[u]==color[v]) return false; 18 if(!color[v]) 19 { 20 color[v] = 3 - color[u]; 21 if(!dfs(v)) return false; 22 } 23 } 24 return true; 25 } 26 27 int main() 28 { 29 int n; 30 scanf("%d",&n); 31 32 for(int i=1; i<=n; i++) 33 { 34 G[i*2-1].push_back(2*i); 35 G[i*2].push_back(2*i-1); 36 } 37 38 for(int i=0; i<n; i++) 39 { 40 int u,v; 41 scanf("%d%d",&u,&v); 42 G[u].push_back(v); 43 G[v].push_back(u); 44 b[i] = u; 45 g[i] = v; 46 } 47 48 for(int i=1; i<=2*n; i++) 49 { 50 if(color[i]==0) 51 { 52 color[i] = 1; 53 dfs(i); 54 } 55 } 56 57 for(int i=0; i<n; i++) 58 { 59 printf("%d %d\n",color[b[i]],color[g[i]]); 60 } 61 return 0; 62 }
View Code
转载于:https://www.cnblogs.com/TreeDream/p/6568376.html
Codeforces Codeforces Round #383 (Div. 2) E (DFS染色)相关推荐
- Codeforces Beta Round #22 (Div. 2 Only) E. Scheme(DFS+强连通)
题目大意 给了 n(2<=n<=105) 个点,从每个点 u 出发连向了一个点 v(共 n 条边) 现在要求添加最少的边使得整个图是一个强连通图 做法分析 这道题千万不要一般化:先求强连通 ...
- Codeforces Beta Round #4 (Div. 2 Only)
Codeforces Beta Round #4 (Div. 2 Only) A 水题 1 #include<bits/stdc++.h> 2 using namespace std; 3 ...
- 【Codeforces】Round #488 (Div. 2) 总结
[Codeforces]Round #488 (Div. 2) 总结 比较僵硬的一场,还是手速不够,但是作为正式成为竞赛生的第一场比赛还是比较圆满的,起码没有FST,A掉ABCD,总排82,怒涨rat ...
- Codeforces Beta Round #75 (Div. 1 Only) B. Queue 线段树。单点更新
http://codeforces.com/problemset/problem/91/B 题意: 给你n个数,求得i 到n中小于a[i]的最右边的a[j],然后求a[i]到a[j]之间包含了多少个数 ...
- Codeforces Beta Round #9 (Div. 2 Only) C. Hexadecimal's Numbers dfs
C. Hexadecimal's Numbers 题目连接: http://www.codeforces.com/contest/9/problem/C Description One beautif ...
- 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 ...
- Codeforces Round #383 (Div. 1) C(二分图)
一道很巧妙的二分图的题目 简单分析性质可知,一个合法序列一定是由12,21这样的子串构成的,所以相邻的每隔2个两两配对 然后BF和GF互相配对,思考一下,如果存在奇环,那么必定有一个BG有两个GF,或 ...
- Codeforces Round #383 (Div. 1): D. Arpa’s letter-marked tree…(dsu on tree+状压)
题意: 给你一棵n个节点的树,每条边都代表着一个字母(a~v),对于每个节点u,求出以u为根的子树中有多少条路径满足:路径上的字符重新排列后可以得到一个回文字符串 思路: 前置:dsu on tree ...
- Codeforces Round #383 Div.2 A-E 题解
A B C D E 这场题目不难,但是很有意思. A 求1378^n的个位数. 特判n=0n=0n=0的情况即可. int d[]={6,8,4,2}; int main(){ int n=read( ...
最新文章
- 束文圣和黄立南Nature综述极端环境中的微生物多样性
- mysql更新锁机制_mysql查询更新时的锁表机制分析
- 代码生成工具CodeSmith中SchemaExplorer类API文档[转]
- sql 删除重复记录保留一条_从零学会SQL·二——简单查询
- 数据挖掘领域十大经典算法
- SSL 2311-车厢调度[栈]
- [网络安全提高篇] 一〇二.Metasploit技术之基础用法万字详解及防御机理
- fiddler对手机进行抓包
- 孙叫兽进阶之路之敏捷开发
- 加速布局无服务器生态,腾讯云与Serverless.com达成全球战略合作!
- 【Shell教程】二----Shell变量,通配符,转义符
- Python数据挖掘笔记 七 .PCA降维操作及subplot子图绘制
- 滴滴自动驾驶首轮融资超5亿美元 加大研发投入 助力“新基建”
- Tecplot 安装记录
- 虚拟服务器搭建棋牌,棋牌开源游戏服务器框架
- 基于MATLAB的说话人语音识别声纹识别系统
- 企业微信管理员可以看到打卡位置吗
- php怎么画五星红旗,php基于GD库画五星红旗的方法_php技巧
- python实现ddos防护_python实现的防DDoS脚本
- 差分贴片晶振使最强军事武器出世
热门文章
- [深度学习-实战]LSTM Attention训练IMDB文本的情感分析
- oracle推式任务发料,Oracle EBS物料清单管理系统简介.pptx
- tensorflow越跑越慢_tensorflow sess.run()越来越慢的原因分析及其解决方法
- 【XCTF 攻防世界 web 练习详解系列(二)】【get_post的两种解法】
- 以企业面试讲解sql语句
- pandas isnull函数检查数据是否有缺失
- 数字图像处理--颜色选择
- Ubuntu下常用命令总结
- CREO - 基础2 - 如何让装配好的零件重新装配
- Android和Linux kernel发展史