zoukankan      html  css  js  c++  java
  • poj1308

    http://poj.org/problem?id=1308

    题目要求是判断是不是为一棵树

    主要看是否满足2个条件

    共有n个不同的数  也就是n个节点

    1 有n-1个入度 去除根节点  一个节点只有一个入度

    2 不能有环 就是单方向的

    其实只要判断条件1就可以 了 只要是环肯定不会为n-1个入度 所以只判断第一个条件就好

    代码如下 用a[]判断节点的入度是否唯一 用K来计算总入度是否为n-1

    用b[]来判断n的值为几

    这个题还要注意一点 0 0是空树 也是树

    View Code
     1 #include <stdio.h>
     2 #include<string.h>
     3 int main()
     4 {
     5     int a[30000] = {0}, i = 0, j, k, flag,x,y,b[30000];
     6     while(scanf("%d%d", &x, &y)!=EOF)
     7     {
     8         k = 0;
     9         j = 0;
    10         i++;
    11         flag = 1;
    12         memset(a, 0, sizeof(a));
    13         memset(b,0,sizeof(b)) ;
    14         if(x<0&&y<0)
    15         break;
    16         a[y] = x;
    17         k++;
    18         j++;
    19         b[y] = 1;
    20         if(b[x]!=1)
    21         {
    22             b[x] = 1;
    23             j++;
    24         }
    25         if(x ==0&&y ==0)
    26         printf("Case %d is a tree.\n", i);
    27         else
    28         {
    29             while(scanf("%d%d", &x, &y), x!=0&&y!=0)
    30             {
    31                 if(b[x]!=1)
    32                 {
    33                     b[x] = 1;
    34                     j++;
    35                 }
    36                 if(b[y]!=1)
    37                 {
    38                     b[y] = 1;
    39                     j++;
    40                 }
    41                 if(a[y] == 0)
    42                 {
    43                     a[y] = x;
    44                     k++;
    45                 }
    46                 else
    47                 {
    48                     flag = 0;
    49                 }
    50             }
    51             if(k == j-1&&flag!=0)
    52             printf("Case %d is a tree.\n", i);
    53             else
    54             printf("Case %d is not a tree.\n", i);
    55         }
    56     }
    57     return 0;
    58 }
  • 相关阅读:
    Android 内存溢出解决方案(OOM) 整理总结
    浅思OC的语言特性
    netsh winsock reset 11003
    Utility
    百度地图手机四角坐标
    Mysql 导入 MSSQL
    Python import 指定目录中的模块
    POJ:3061-Subsequence(尺取法模板详解)
    POJ:3616-Milking Time
    POJ:2385-Apple Catching(dp经典题)
  • 原文地址:https://www.cnblogs.com/shangyu/p/2576889.html
Copyright © 2011-2022 走看看