题目链接:http://codeforces.com/contest/742/problem/E

题意:

有一个环形的桌子,一共有n对情侣,2n个人,一共有两种菜。

现在让你输出一种方案,满足以下要求:

  1. 情侣间吃不同的菜

  2. 相邻的三个人不能都吃同一种菜

输出任意一个解:

先将相邻的两个人连边,这样就满足了3个人不吃同样一种菜。

情侣间连边。

图中就不存在奇数环。

那么就一定存在解。然后DFS染色就OK 了。

 #include <bits/stdc++.h>

 using namespace std;

 const int maxn = *;

 vector <int> G[maxn];
int color[maxn];
int b[maxn];
int g[maxn]; bool dfs(int u)
{
for(int i=; i<G[u].size(); i++)
{
int v = G[u][i];
if(color[u]==color[v]) return false;
if(!color[v])
{
color[v] = - color[u];
if(!dfs(v)) return false;
}
}
return true;
} int main()
{
int n;
scanf("%d",&n); for(int i=; i<=n; i++)
{
G[i*-].push_back(*i);
G[i*].push_back(*i-);
} for(int i=; i<n; i++)
{
int u,v;
scanf("%d%d",&u,&v);
G[u].push_back(v);
G[v].push_back(u);
b[i] = u;
g[i] = v;
} for(int i=; i<=*n; i++)
{
if(color[i]==)
{
color[i] = ;
dfs(i);
}
} for(int i=; i<n; i++)
{
printf("%d %d\n",color[b[i]],color[g[i]]);
}
return ;
}

最新文章

  1. 获取本机IP
  2. 1. javacript高级程序设计-JavaScript简介
  3. Django Push HTTP Response to users
  4. jquery表单提交和重置
  5. jQuery formValidator表单验证插件常见问题
  6. 【easuyi】---easyui中的验证validatebox自定义
  7. SparkContext和RDD
  8. TopFreeTheme精选免费模板【20130619】
  9. ionic中input框禁止输入问题
  10. ios ReactiveViewModel
  11. 从SG函数浅谈解决博弈问题的通法
  12. SGU 194 Reactor Cooling
  13. 最新FFMPEG解码流程
  14. python函数参数是值传递还是引用传递(以及变量间复制后是否保持一致):取决于对象内容可变不可变
  15. 进程之multiprocessing
  16. months_between()用法
  17. mac下git安装和使用
  18. tomcat集群及session共享
  19. Ant多渠道批量打包
  20. 唯品会的Service Mesh三年进化史

热门文章

  1. getter与setter
  2. Linux的cron服务
  3. 二叉查找树的C语言实现(一)
  4. pat1094. The Largest Generation (25)
  5. MySQL锁行锁表
  6. poj 3140 树形去边差异最小
  7. 非关系型数据库(NOSQL)-Redis
  8. SAP常用函数
  9. Promise对象(异步编程)
  10. 好用的切换滑动焦点图框架jquery.superslide