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

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

代码如下

#include <stdio.h>
#include <stdlib.h>
#include <string.h>#define MAX 100int matrix[MAX][MAX];
int node[MAX] = {0};
int N = 0;
int M = 0;int check() {int i, j;int sum;if(N == 0) {return 1;      } if(N != M + 1) {return 0;     } /* 每个节点的入度非0则1 */for(i = 0; i < MAX; i++) {sum = 0;for(j = 0; j < MAX; j++) {sum += matrix[j][i]; } if(sum == 0 || sum == 1) {;}else {return 0;      }}/* 判断图中无环 */return 1;
}void print() {int i, j;for(i = 0; i < 10; i++) {for(j = 0; j < 10; j++) {printf("%d ", matrix[i][j]);     }     printf("\n");}
}int main() {int u,v;int flag = 1;int count = 0;int i;while(flag) {/* init */N = 0;M = 0;memset(node, 0, sizeof(node));memset(matrix, 0, sizeof(matrix));while(1) {scanf("%d%d", &u, &v);if(u == -1 && v == -1) {flag = 0;break;     }if(u == 0 && v == 0) {;     }else {u --;v --;M ++;if(0 == node[u]) {node[u] = 1;     N ++;}if(0 == node[v]) {node[v] = 1; N ++;}matrix[u][v] = 1;continue;}count ++;if(check()) {printf("Case %d is a tree.\n", count);    }else {printf("Case %d is not a tree.\n", count);    } break;}}return 0;
}

  

转载于:https://www.cnblogs.com/igloo1986/p/3534805.html

【poj解题】1308相关推荐

  1. 【POJ】1308 Is It A Tree?((并查集 + set)or (map))

    http://poj.org/problem?id=1308 这个题数组开到200就可以了,但题目中貌似没有说呢? 读入每一对顶点,看看他们是否在同一个集合中,如果是的话,肯定成环,不是一棵树. 用s ...

  2. poj解题报告——poj 1528 Perfection

    原题入口 poj 1528 Perfection 题目描述 Perfection Time Limit: 1000MS Memory Limit: 10000K Total Submissions: ...

  3. poj解题报告——2325

    题目读了好长时间,郁闷. 题意:给定一个数N,求一个数M,要求:将M的各个位的数相乘得到N,M最小.思路:用到高精度除法,将给定的数从9开始试除,接着试除8,7,6,5,4,3,2.若结果 N仍大于一 ...

  4. poj解题报告——2386

    题意:给你一个row*col的矩阵表示一块田地,上面的'W'代表积水,'.'表示干地,问这块田地里面的积水能汇聚成几片水洼. #include<iostream> #include< ...

  5. uscao 线段树成段更新操作及Lazy思想(POJ3468解题报告)

    线段树成段更新操作及Lazy思想(POJ3468解题报告) 标签: treequerybuildn2cstruct 2011-11-03 20:37 5756人阅读 评论(0) 收藏 举报  分类: ...

  6. 模拟退火算法——解决售货员的难题

    模拟退火算法--解决售货员的难题 分类: 解题报告 其他2010-11-22 23:20 1000人阅读 评论(2) 收藏 举报 算法优化outputgraphinputc Simulation An ...

  7. 大量ACM/ICPC书籍与网站资源

    算法丛书分享 1.Concrete Mathematics --- A Foundation For Computer Science Ronald L. Graham , Donald E. Knu ...

  8. 杭电 1272 poj 1308 小希的迷宫

    这道题是我学了并查集过后做的第三个题,教我们的学姐说这是并查集的基础题,所以有必要牢牢掌握. 下面就我做这道题的经验,给大家一些建议吧!当然,我的建议不是最好的,还请各位大神指出我的错误来,我也好改正 ...

  9. POJ 2800 垂直直方图 解题报告

    POJ 2800 垂直直方图 解题报告 编号:2800   考查点:简单计算题 思路: 用gets()读入4行数据,然后按字符统计,显示的时候有点小处理即可. 提交情况: 感觉POJ的测试数据有点骗人 ...

最新文章

  1. R3抹掉加载的DLL
  2. 购物车Demo,前端使用AngularJS,后端使用ASP.NET Web API(2)--前端,以及前后端Session
  3. str 类常用的函数
  4. Docker Compose部署Nexus3时的docker-compose.yml代码
  5. C#中获取当前时间字符串给文件命名防止重复
  6. degree of freedom of a leg of a dog
  7. 求n的阶乘的算法框图_单片机常用的14个C语言算法
  8. 【亲测】2022最新H5手机微商城运营源码/简约轻量版/对接支付个人免签接口/带搭建教程
  9. JavaWeb开发——JSP技术
  10. 室内导航怎么实现?怎么做到零成本实现室内导航?
  11. Android WebView 进价高级使用
  12. IMDB电影排行爬取分析
  13. java解析txt文本文件_java读取文本文件内容方法详解,java如何读取txt文件?
  14. 热心肠行为?苹果“偷偷“给应用买广告
  15. Html中几种图片格式的区别与使用--我的笔记
  16. Realtek 2.5G USB网卡RTL8156B-CG支持免驱简介
  17. 请求成功但是报错: Uncaught (in promise)
  18. WIN7 64位系统安装CodeWarrior 6.3及BDM驱动
  19. outlook规则导出_如何在Outlook和Gmail之间导入和导出联系人
  20. sap客户信贷_通过SAP ABAP接口修改客户信贷主数据

热门文章

  1. 第十五周学习进度博客
  2. mysql,简单介绍一下索引
  3. JavaScript原理学习
  4. NowCoder小定律
  5. 判断一个jquery对象是否为空jquery对象
  6. (转)PJSIP入门:编译,运用PJSIP,PJMEDIA
  7. etcd rest api基本操作
  8. 盘点最受欢迎的十个开源大数据技术
  9. SSE命令示例代码(算术、逻辑、比较)
  10. 如何在ubuntu14.04(64位)编译运行32位程序