UVA 11396 Claw Decomposition 染色
2015-10-13 00:28
253 查看
原题链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2391
题意:
就给你一个图,图中每个点的度都为3,问你能不能分解为若干爪印。。。爪印的定义就是一个中心点,三个叶子的树。题解:
由于每个点的度都为3,那么每个点要么是爪印的中心,要么是叶子,而且是交替出现的,所以只要黑白染色就好代码:
#include<iostream> #include<cstring> #include<vector> #include<cstdio> #include<algorithm> #define MAX_N 555 using namespace std; vector<int> G[MAX_N]; int n; int d[MAX_N]; bool dfs(int u,int p){ d[u]=d[p]^1; bool tmp=true; for(int i=0;i<G[u].size();i++){ if(d[G[u][i]]==d[u])return false; if(d[G[u][i]]==-1) tmp&=dfs(G[u][i],u); } return tmp; } int main(){ while(scanf("%d",&n)){ if(n==0)break; int u,v; for(int i=0;i<=n;i++)G[i].clear(); while(true){ scanf("%d%d",&u,&v); if(u+v==0)break; G[u].push_back(v); G[v].push_back(u); } bool flag=true; memset(d,-1,sizeof(d)); d[0]=0; flag=dfs(1,0); memset(d,-1,sizeof(d)); d[0]=1; flag&=dfs(1,0); if(flag) printf("YES\n"); else printf("NO\n"); } return 0; }
相关文章推荐
- 正则表达式(整理)
- O2O创业者醒醒吧!滴滴快的模式不可复制
- (中等) CF 585B Phillip and Trains,BFS。
- Ember.js 入门指南——处理事件
- Codeforces Round #325 (Div. 2) Phillip and Trains dp
- Github效果图预览设置
- Codeforces Round #325 (Div. 2) Laurenty and Shop 模拟
- mybatis0208 缓存
- BufferWriter 效率高在哪里
- 初步17-乱玩数字
- Android的横竖屏切换
- [数据挖掘课程笔记]Naïve Bayesian Classifier
- (中等) CF 585C Alice, Bob, Oranges and Apples,矩阵+辗转相除。
- Letter Combinations of a Phone Number
- Notepad++快捷键
- eclipse快捷键大全
- {Effective Java} Chap 8 General Programming
- mysql创建索引小案例
- NAT123内网映射端口
- 利用反射获取android内置外置SDCARD路径