uva11396 dfs应用
来源:互联网 发布:中国移动有什么软件 编辑:程序博客网 时间:2024/06/16 01:47
题意:判断一个三度图(每个点的度均为3)是否可以分解成若干个爪形,每条边恰属于一个爪。
思路:每个爪型的中心点标记为1,边缘点标记为1,可知每条边恰属于一个爪<=>每条边的两端点不同时为0或1<=>该图是二分图,转化为二分图判定问题
#include<stdio.h>#include<string.h>#include<iostream>#include<vector>#include<queue>#include<algorithm>#define maxn 400#define maxm 300000#define INF 1<<28#define ll long long#define mem(a,b) memset(a,b,sizeof(a))using namespace std;vector<int> g[maxn];int n,color[maxn];bool bi(int u){ for(int i=0;i<g[u].size();i++){ if(!color[g[u][i]]){ color[g[u][i]]=3-color[u]; if(!bi(g[u][i])) return false; } else if(color[g[u][i]]==color[u]) return false; } return true;}bool judge_bi(){ for(int i=1;i<=n;i++) if(!color[i]) { color[i]=1; if(!bi(i)) return false; } return true;}int main(){ //freopen("a.txt","r",stdin); while(scanf("%d",&n)!=EOF){ if(!n) break; mem(color,0); for(int i=1;i<=n;i++) g[i].clear(); int u,v; while(scanf("%d%d",&u,&v),u&&v) { g[u].push_back(v),g[v].push_back(u); } if(judge_bi()) printf("YES\n"); else printf("NO\n"); } return 0;}
0 0
- uva11396 dfs应用
- UVA11396 Claw Decomposition
- uva11396 - Claw Decomposition
- UVA11396 Claw Decomposition
- uva11396 爪分解
- DFS应用
- UVa11396 - Claw Decomposition(染色问题)
- Uva11396 Claw Decomposition(爪分解)
- poj 1321 dfs应用
- DFS的简单应用
- DFS及其应用 专题
- DFS的应用
- UVA11396-Claw Decomposition(二分图判定)
- Uva11396 爪分解(二分图判定)
- uva 10765 dfs及其应用
- DFS的时间戳应用
- [c]HDOJ1455 dfs的应用
- 回溯法,DFS的应用
- 浅谈代码病毒
- RSA加密(C语言)
- C语言编写的学生成绩管理系统代码…
- Nginx防御CC攻击
- <如何记账和编制财务报表>对4W家庭理财软件的评价
- uva11396 dfs应用
- DES一轮加密(C语言)
- 反汇编之爆破
- 反汇编——逆向初步(1)
- 反汇编——逆向初步(2)
- 反汇编——逆向初步(3)
- 反汇编——逆向初步(4)
- 反汇编——编写注册机
- Sql Server 分页存储过程