题意:

给定一幅图, 问符不符合一下两个条件;

(1) 图中没有环

(2)图中存在一条链, 点要么在链上, 要么是链上点的邻居。

分析:

建图,记录度数, 去掉所有度为1的点, 然后看看剩下是否是有2个度为1的点和其他都是度为2的点。

#include<cstdio>
#include<iostream>
#include<queue>
#include<cstring>
#include<string>
#include<map>
#include<stack>
#include<vector>
#include<algorithm>
#include<cmath>
#define rep(i,a,b) for(int i = a; i < b; i++)
#define _rep(i,a,b) for(int i = a; i <= b; i++)
using namespace std;
int G[][];
int n, m;
int deg[], vis[];
int main(){
// freopen("1.txt","r", stdin);
int kase = ;
while(~scanf("%d", &n) && n){
memset(G,,sizeof(G));
memset(deg,,sizeof(deg));
memset(vis,,sizeof(vis));
scanf("%d", &m);
for(int i = ; i < m ; i++){
int u, v;
scanf("%d %d", &u, &v);
G[u][v] = G[v][u] = ;
deg[u]++;
deg[v]++;
}
for(int i = ; i <= n; i++){
if(deg[i] == ){ //把度为1的点全部删除, 把链上的分叉的消去
vis[i] = ;
for(int j = ; j <= n; j++){
if(G[i][j])
deg[j]--;
}
}
}
int ok = , _1 = , _2 = ,cnt = ;
for(int i = ;i <= n; i++){
if(!vis[i]){
cnt++;
if(deg[i] == ) _1++;//统计剩下点度为1的
else if(deg[i] == ) _2++;//统计剩下度为2的
}
}
if(!(_1 == && _2 == (cnt-))) ok = ;//如果有2个度为1, 其他都是2, 那么就是一条链, 其他情况都不符合
if(ok)
printf("Graph %d is a caterpillar.\n",kase++);
else printf("Graph %d is not a caterpillar.\n",kase++);
}
return ;
}

POJ 3310 Caterpillar(图的度的判定)的更多相关文章

  1. poj 3310(并查集判环,图的连通性,树上最长直径路径标记)

    题目链接:http://poj.org/problem?id=3310 思路:首先是判断图的连通性,以及是否有环存在,这里我们可以用并查集判断,然后就是找2次dfs找树上最长直径了,并且对树上最长直径 ...

  2. POJ 1637 混合图的欧拉回路判定

    题意:一张混合图,判断是否存在欧拉回路. 分析参考: 混合图(既有有向边又有无向边的图)中欧拉环.欧拉路径的判定需要借助网络流! (1)欧拉环的判定:一开始当然是判断原图的基图是否连通,若不连通则一定 ...

  3. poj 1659 Frogs&#39; Neighborhood 度序列可图化 贪心

    题意: 对一个无向图给出一个度序列,问他是否可简单图化. 分析: 依据Havel定理,直接贪心就可以. 代码: //poj 1659 //sep9 #include <iostream> ...

  4. poj 1144 Network 图的割顶判断模板

    Network Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 8797   Accepted: 4116 Descripti ...

  5. POJ 1637 混合图欧拉回路

    先来复习一下混合图欧拉回路:给定一张含有单向边和双向边的图,使得每一点的入度出度相同. 首先对于有向边来说,它能贡献的入度出度是确定的,我们不予考虑.对于无向图,它可以通过改变方向来改变两端点的出入度 ...

  6. POJ 1659 Frogs&#39; Neighborhood(度序列组成)

    意甲冠军  中国 依据Havel-Hakimi定理构图即可咯  先把顶点按度数从大到小排序  可图的话  度数大的顶点与它后面的度数个顶点相连肯定是满足的  出现了-1就说明不可图了 #include ...

  7. poj 1129(dfs+图的四色定理)

    题目链接:http://poj.org/problem?id=1129 思路:根据图的四色定理,最多四种颜色就能满足题意,使得相邻的两部分颜色不同.而最多又只有26个点,因此直接dfs即可. #inc ...

  8. POJ 2942Knights of the Round Table(二分图判定+双连通分量)

    题目链接 题意:一些骑士,他们有些人之间有矛盾,现在要求选出一些骑士围成一圈,圈要满足如下条件:1.人数大于1.2.总人数为奇数.3.有仇恨的骑士不能挨着坐.问有几个骑士不能和任何人形成任何的圆圈. ...

  9. BZOJ-1305 dance跳舞 建图+最大流+二分判定

    跟随YveH的脚步又做了道网络流...%%% 1305: [CQOI2009]dance跳舞 Time Limit: 5 Sec Memory Limit: 162 MB Submit: 2119 S ...

随机推荐

  1. PowerDesigner 16.5的下载安装破解注册(图文详解)

    http://blog.csdn.net/chenchunlin526/article/details/54707757

  2. jquery html() 和text()的用法

    html()类似JS中的 innerHTML,首先看一段代码: <!DOCTYPE html> <html lang="en"> <head> ...

  3. Easy Game LightOJ - 1031

    Easy Game LightOJ - 1031 upd:似乎有复杂度更优越的做法,见http://www.cnblogs.com/hehe54321/p/8431020.html 题意:A和B玩一个 ...

  4. pscp多线程传输文件

    前面说过pscp不支持多线程,所以在此特地实现了一个 程序分三个部分: 1.初始化各种参数,涉及getopt函数的使用 2.重新定义scp,实现传递IP然后远程拷贝 3.启动多线程调用scp,涉及多线 ...

  5. 基于坐标的自动化测试神器---Total Control快速入门

    1.Total Control简单介绍 一款能够在PC上控制手机的软件,同时可以使用PC 触摸屏.鼠标.键盘, 全面操控 Android 手机,只需通过 USB 或 WiFi 连接手机至电脑,即可随时 ...

  6. Asp.net 字符(三)

    using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using ...

  7. mybatis javaConfig实现

    @Bean public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception { SqlSessio ...

  8. hash系列集合的性能优化

    hash系列的集合: HashSet.LinkedHashSet     采用hash算法决定元素在集合中的存储位置 HashMap.LinkedHashMap.Hashtable   采用hash算 ...

  9. php 生成饼状图,折线图,条形图 通用类

    生成饼状图,折线图,条形图通用的php类,这里使用的是百度 Echart. Echart 官方网站  http://echarts.baidu.com/ <?php class Echarts ...

  10. windows session logoff时进行处理动作

    目标:Windows session logoff时得到通知,进行一些记录/清理工作 测试平台: win7 x64 logoff时系统会发送WM_ENDSESSION消息,如果某个应用对这个消息的处理 ...