【poj解题】1308
判断一个图是否是一个树,树满足一下2个条件即可:
1. 边树比node数少1
2. 所有node的入度非0即1
节点数是0的时候,空树,合法树~
代码如下
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #define MAX 100
- int 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;
- }
【poj解题】1308的更多相关文章
- POJ解题经验交流
感谢范意凯.陈申奥.庞可.杭业晟.王飞飏.周俊豪.沈逸轩等同学的收集整理. 题号:1003 Hangover求1/2+1/3+...1/n的和,问需多少项的和能超过给定的值 类似于Zerojudg ...
- 【poj解题】1028
stack的应用 #include<iostream> #include<stack> #include<stdio.h> #include<stdlib.h ...
- 【poj解题】3664
简单,两次排序 #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX 500 ...
- 【poj解题】3663
排序, 遍历,需要裁减 #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX ...
- [poj解题]1017
Packets Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 41014 Accepted: 13776 Descrip ...
- 洛谷 P1731 [NOI1999]生日蛋糕 && POJ 1190 生日蛋糕
题目传送门(洛谷) OR 题目传送门(POJ) 解题思路: 一道搜索题,暴力思路比较容易想出来,但是这道题不剪枝肯定会TLE.所以这道题难点在于如何剪枝. 1.如果当前状态答案已经比我们以前某个状态 ...
- POJ 1308 Is It A Tree? 解题报告
Is It A Tree? Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 32052 Accepted: 10876 D ...
- POJ 1308
http://poj.org/problem?id=1308 题意:判断这是不是一棵树. 思路:这个题还是有部分坑点的.首先空树也是一棵树,还有森林不是树. 关于森林的判断我是利用并查集把每一个点压缩 ...
- POJ 1308&&HDU 1272 并查集判断图
HDU 1272 I - 小希的迷宫 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64 ...
随机推荐
- MyEclipse10.6、Maven、svn集成
这几天整理maven,根据开发部署需要,需要把原先的myeclipse下的普通javaWeb工程用maven管理,弄了2天,主要还是在jar包的引入上,总是少- -! 好了,下面记录一下我的安装过程: ...
- CentOS 安装及配置Salt api
安装 # yum -y install salt-api 更改配置 vim /etc/salt/master 把默认的注释掉 我们这边默认配置文件目录是/srv/salt default_inclu ...
- HttpCookie类
转自:http://www.cnblogs.com/kissdodog/archive/2013/01/08/2851937.html HttpCookie类专门由C#用于读取和写入Cookie的类. ...
- linux ubuntu下如何安装并且切换java版本(Unsupported major.minor version 52.0)
最近在做一个dcos(数据中心操作系统)的东西,需要用marathon来做进程管理.遗憾的是0.6版本的marathon在API方面很是缺少,换成了0.15版本之后,运行时提示“Unsupported ...
- linux daemon
参考 鸟哥的私房菜 http://linux.vbird.org/linux_basic/0560daemons.php
- 求N以内与N互质的数的和
题目连接 /* 求所有小于N且与N不互质的数的和. 若:gcd(n,m)=1,那么gcd(n,n-m)=1; sum(n)=phi(n)*n/2; //sum(n)为小于n的所有与n互质的数的和 // ...
- Swift 学习笔记(五)
126. 协议(Protocols) 协议语法(Protocol Syntax) 属性要求(Property Requirements) 方法要求(Method Requirements) Mutat ...
- iOS5新特性: Core Image 示例
iOS5给我们带来了很多很好很强大的功能和API.Core Image就是其中之一,它使我们很容易就能处理图片的各种效果,色彩啊,曝光啊,饱和度啊,变形啊神马的. 可惜苹果一直没能完善官方文档,也没有 ...
- AI 人工智能 探索 (三)
三类子弹的设计 using UnityEngine; using System.Collections; public class AI : AssembleModel { private Hasht ...
- 初探JavaScript魅力
<style> #div1{width:200px; height:200px; background:red;} </style> </head> <scr ...