判断一个图是否是一个树,树满足一下2个条件即可:
1. 边树比node数少1
2. 所有node的入度非0即1

节点数是0的时候,空树,合法树~

代码如下

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. #define MAX 100
  6.  
  7. int matrix[MAX][MAX];
  8. int node[MAX] = {0};
  9. int N = 0;
  10. int M = 0;
  11.  
  12. int check() {
  13. int i, j;
  14. int sum;
  15. if(N == 0) {
  16. return 1;
  17. }
  18.  
  19. if(N != M + 1) {
  20. return 0;
  21. }
  22.  
  23. /* 每个节点的入度非0则1 */
  24. for(i = 0; i < MAX; i++) {
  25. sum = 0;
  26. for(j = 0; j < MAX; j++) {
  27. sum += matrix[j][i];
  28. }
  29. if(sum == 0 || sum == 1) {
  30. ;
  31. }
  32. else {
  33. return 0;
  34. }
  35. }
  36. /* 判断图中无环 */
  37.  
  38. return 1;
  39. }
  40.  
  41. void print() {
  42. int i, j;
  43. for(i = 0; i < 10; i++) {
  44. for(j = 0; j < 10; j++) {
  45. printf("%d ", matrix[i][j]);
  46. }
  47. printf("\n");
  48. }
  49. }
  50.  
  51. int main() {
  52. int u,v;
  53. int flag = 1;
  54. int count = 0;
  55. int i;
  56. while(flag) {
  57. /* init */
  58. N = 0;
  59. M = 0;
  60. memset(node, 0, sizeof(node));
  61. memset(matrix, 0, sizeof(matrix));
  62.  
  63. while(1) {
  64. scanf("%d%d", &u, &v);
  65. if(u == -1 && v == -1) {
  66. flag = 0;
  67. break;
  68. }
  69. if(u == 0 && v == 0) {
  70. ;
  71. }
  72. else {
  73. u --;
  74. v --;
  75. M ++;
  76. if(0 == node[u]) {
  77. node[u] = 1;
  78. N ++;
  79. }
  80. if(0 == node[v]) {
  81. node[v] = 1;
  82. N ++;
  83. }
  84. matrix[u][v] = 1;
  85. continue;
  86. }
  87. count ++;
  88. if(check()) {
  89. printf("Case %d is a tree.\n", count);
  90. }
  91. else {
  92. printf("Case %d is not a tree.\n", count);
  93. }
  94. break;
  95. }
  96. }
  97. return 0;
  98. }

  

【poj解题】1308的更多相关文章

  1. POJ解题经验交流

    感谢范意凯.陈申奥.庞可.杭业晟.王飞飏.周俊豪.沈逸轩等同学的收集整理.   题号:1003 Hangover求1/2+1/3+...1/n的和,问需多少项的和能超过给定的值 类似于Zerojudg ...

  2. 【poj解题】1028

    stack的应用 #include<iostream> #include<stack> #include<stdio.h> #include<stdlib.h ...

  3. 【poj解题】3664

    简单,两次排序 #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX 500 ...

  4. 【poj解题】3663

    排序, 遍历,需要裁减 #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX ...

  5. [poj解题]1017

    Packets Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 41014   Accepted: 13776 Descrip ...

  6. 洛谷 P1731 [NOI1999]生日蛋糕 && POJ 1190 生日蛋糕

    题目传送门(洛谷)  OR 题目传送门(POJ) 解题思路: 一道搜索题,暴力思路比较容易想出来,但是这道题不剪枝肯定会TLE.所以这道题难点在于如何剪枝. 1.如果当前状态答案已经比我们以前某个状态 ...

  7. POJ 1308 Is It A Tree? 解题报告

    Is It A Tree? Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 32052   Accepted: 10876 D ...

  8. POJ 1308

    http://poj.org/problem?id=1308 题意:判断这是不是一棵树. 思路:这个题还是有部分坑点的.首先空树也是一棵树,还有森林不是树. 关于森林的判断我是利用并查集把每一个点压缩 ...

  9. POJ 1308&&HDU 1272 并查集判断图

      HDU 1272 I - 小希的迷宫 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64 ...

随机推荐

  1. MyEclipse10.6、Maven、svn集成

    这几天整理maven,根据开发部署需要,需要把原先的myeclipse下的普通javaWeb工程用maven管理,弄了2天,主要还是在jar包的引入上,总是少- -! 好了,下面记录一下我的安装过程: ...

  2. CentOS 安装及配置Salt api

    安装 # yum -y install salt-api 更改配置 vim /etc/salt/master 把默认的注释掉  我们这边默认配置文件目录是/srv/salt default_inclu ...

  3. HttpCookie类

    转自:http://www.cnblogs.com/kissdodog/archive/2013/01/08/2851937.html HttpCookie类专门由C#用于读取和写入Cookie的类. ...

  4. linux ubuntu下如何安装并且切换java版本(Unsupported major.minor version 52.0)

    最近在做一个dcos(数据中心操作系统)的东西,需要用marathon来做进程管理.遗憾的是0.6版本的marathon在API方面很是缺少,换成了0.15版本之后,运行时提示“Unsupported ...

  5. linux daemon

    参考 鸟哥的私房菜 http://linux.vbird.org/linux_basic/0560daemons.php

  6. 求N以内与N互质的数的和

    题目连接 /* 求所有小于N且与N不互质的数的和. 若:gcd(n,m)=1,那么gcd(n,n-m)=1; sum(n)=phi(n)*n/2; //sum(n)为小于n的所有与n互质的数的和 // ...

  7. Swift 学习笔记(五)

    126. 协议(Protocols) 协议语法(Protocol Syntax) 属性要求(Property Requirements) 方法要求(Method Requirements) Mutat ...

  8. iOS5新特性: Core Image 示例

    iOS5给我们带来了很多很好很强大的功能和API.Core Image就是其中之一,它使我们很容易就能处理图片的各种效果,色彩啊,曝光啊,饱和度啊,变形啊神马的. 可惜苹果一直没能完善官方文档,也没有 ...

  9. AI 人工智能 探索 (三)

    三类子弹的设计 using UnityEngine; using System.Collections; public class AI : AssembleModel { private Hasht ...

  10. 初探JavaScript魅力

    <style> #div1{width:200px; height:200px; background:red;} </style> </head> <scr ...