题目大意:给出一个简单无向图,每一个点的度为3。推断是否能将此图分解成若干爪的形式。使得每条边都仅仅出如今唯一的爪中。

(点能够多次出如今爪中)

这道题实质上就是问这个图是否为二分图,dfs判定就可以

#include<cstdio>
#include<cstring>
#include<cmath>
#include<cstdlib>
#include<iostream>
#include<algorithm>
#include<vector>
#include<map>
#include<queue>
#include<stack>
#include<string>
#include<map>
#include<set>
#define eps 1e-6
#define LL long long
using namespace std; const int maxn = 300 + 5;
const int INF = 0x3f3f3f3f;
vector<int> G[maxn];
//dfs给二分图进行黑白二着色,用颜色1表示黑色,颜色2表示白色,0表示没着色
int color[maxn]; //推断节点u所在的连通分量是否为二分图
int n;
bool bipartite(int u) {
for(int i = 0; i < G[u].size(); i++) {
int v = G[u][i];
if(color[v] == color[u]) return false;
if(!color[v]) {
color[v] = 3 - color[u];
if(!bipartite(v)) return false;
}
}
return true;
} void init() {
memset(color, 0, sizeof(color));
for(int i = 1; i <= n; i++) G[i].clear();
int x, y;
while(scanf("%d%d", &x, &y) == 2 && x) {
G[x].push_back(y);
G[y].push_back(x);
}
} void solve() {
color[1] = 1;
if(bipartite(1)) puts("YES");
else puts("NO");
} int main() {
//freopen("input.txt", "r", stdin);
while(scanf("%d", &n) == 1 && n) {
init();
solve();
}
return 0;
}

uva 11396Claw Decomposotion(二分图判定)的更多相关文章

  1. UVA 11080 - Place the Guards(二分图判定)

    UVA 11080 - Place the Guards 题目链接 题意:一些城市.之间有道路相连,如今要安放警卫,警卫能看守到当前点周围的边,一条边仅仅能有一个警卫看守,问是否有方案,假设有最少放几 ...

  2. UVa 11396 爪分解(二分图判定)

    https://vjudge.net/problem/UVA-11396 题意: 给出n个结点的简单无向图,每个点的度数均为3.你的任务是判断能否把它分解成若干爪.每条边必须属于一个爪,但同一个点可以 ...

  3. poj2942 Knights of the Round Table,无向图点双联通,二分图判定

    点击打开链接 无向图点双联通.二分图判定 <span style="font-size:18px;">#include <cstdio> #include ...

  4. CF687A. NP-Hard Problem[二分图判定]

    A. NP-Hard Problem time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  5. COJ 0578 4019二分图判定

    4019二分图判定 难度级别: B: 编程语言:不限:运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 给定一个具有n个顶点(顶点编号为0,1,… ...

  6. hdoj 3478 Catch(二分图判定+并查集)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3478 思路分析:该问题需要求是否存在某一个时刻,thief可能存在图中没一个点:将该问题转换为图论问题 ...

  7. HDU2444(KB10-B 二分图判定+最大匹配)

    The Accomodation of Students Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ( ...

  8. DFS的运用(二分图判定、无向图的割顶和桥,双连通分量,有向图的强连通分量)

    一.dfs框架: vector<int>G[maxn]; //存图 int vis[maxn]; //节点访问标记 void dfs(int u) { vis[u] = ; PREVISI ...

  9. HihoCoder 1121 二分图一•二分图判定

    二分图一•二分图判定 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 大家好,我是小Hi和小Ho的小伙伴Nettle,从这个星期开始由我来完成我们的Weekly. 新年回 ...

随机推荐

  1. C语言盲点笔记1

    寥寥数笔,记录我的C语言盲点笔记,仅仅为以前经历过,亦有误,可交流. 1.int* a和int *a有差别吗? 没有不论什么差别,都表示a是int指针 建议这么写int *a;这样明显一点 理由例如以 ...

  2. Java经典23种设计模式之创造型模式(一)

    设计模式被称为程序猿的内功,之前零零散散的看过一大部分,但自己么有总结过.故此次在这里总结下.值得一提的是,设计模式并不是Java所特有.由于一直搞Android.这里就用Java为载体.最经典的设计 ...

  3. Struts2他们拦截器实例定义—登陆权限验证

    版本号:struts2.1.6 这种情况下实现功能:用户需要指定username登陆,进入相应的页面运行成功登陆作战,否则,它返回到着陆的登录页面,当直接进入操作页面(登陆访问页面后的能力)如果不同意 ...

  4. HNCU1100:彩票

    http://hncu.acmclub.com/index.php?app=problem_title&id=111&problem_id=1100 题目描述 有一种彩票的玩法是从1~ ...

  5. java学习笔记10--枚举

    java学习笔记10--枚举 在JDK1.5之前,java可以有两种方式定义新类型:类和接口.对于大部分面向对 象编程来说,这两种方法看起来似乎足够了,但是在一些特殊情况下,这些方法就不适合.例如,想 ...

  6. TestComplete实测Flex

    1.TestComplete提供了已经编译好的Flex界面,可以直接使用: http://support.smartbear.com/samples/testcomplete9/flex/orders ...

  7. ios 正則表達式替换

    1. 不可变字符串   (content 是不可变) NSRegularExpression *regularExpression = [NSRegularExpression regularExpr ...

  8. NetBeans工具学习之道:NetBeans的(默认)快捷键

    没什么好介绍的,是netbeans的快捷键,比較全面.看到好多坛子里还在问eclipse下的这个快捷键怎么netbeans下没有呢.曾经收集的,如今列在以下: 事实上,在当前安装的netbeans的 ...

  9. counting objects in class

    參考文献:pgno=1">http://www.drdobbs.com/cpp/counting-objects-in-c/184403484? pgno=1

  10. 应用层open(read、write、close)怎样调用驱动open(read、write、close)函数的?

    应用层open(read.write.close)怎样调用驱动open(read.write.close)函数的? 华清远见2014-09-29   北京海淀区 张俊浩 三大数据结构关系图