题意,就是判断这点点是不是组成的一颗树,也就是判断是否有环,就是没看出来如果是森林怎么办,试一试吧,最可恶的还没有说有多少节点。。。。。就是个坑
//
坑,这题就是一个彻头彻尾的坑,首先数据不连接,需要一个标记数组来判断出现的都是那些节点,数组要开到10w,而且还有可能这棵树没有节点,是一个空树,也就是只有 0 0,还要判断是不是森林,要输出这也是一颗树.....确实很无聊的题目,需要让人试错

#include <stdio.h>

#include<algorithm>
using namespace std;

const int maxn = 100005;

int f[maxn], use[maxn];

void init()
{
    for(int i=0; i<maxn; i++)
        f[i] = i, use[i] = 0;
}
int Find(int x)
{
    if(f[x] != x)
        f[x] = Find(f[x]);
    return f[x];
}

int main()
{
    int u, v, ok=1, t=1;

init();
    while(scanf("%d%d", &u, &v), u!= -1 || v!=-1)
    {
        if(u+v == 0)
        {
            int sum = 0;

for(int i=0; i<maxn; i++)
            {
                if(use[i] == 1 && f[i] == i)
                    sum++;
            }

if(ok && sum < 2)printf("Case %d is a tree.\n", t++);
            else printf("Case %d is not a tree.\n", t++);

ok = 1;
            init();
        }
        else
        {
            use[u] = use[v] = 1;
            u = Find(u), v = Find(v);
            if(u != v)
                f[u] = v;
            else ok = 0;
        }
    }

return 0;
}

转载于:https://www.cnblogs.com/liuxin13/p/4669887.html

N - Is It A Tree?(判断环)相关推荐

  1. CF1385E Directing Edges (拓扑排序判断环)

    整理的算法模板合集: ACM模板 luogu链接 我们直接先把所有的有向边建图,然后拓扑排序判断环,如果此时有环那么直接输出no 为了将无向边变成有向边之后依旧无环,那么我们只需要遵循拓扑排序的规则, ...

  2. LeetCode 287. Find the Duplicate Number (时间复杂度O(n)) + 链表判断环

    LeetCode 287. Find the Duplicate Number 暴力解法 时间 O(nlog(n)),空间O(n),按题目中Note"只用O(1)的空间",照理是过 ...

  3. poj 1932(spfa判断环)

    题目链接:http://poj.org/problem?id=1932 题意:根据给出的关系图,判断是否存在一条从1到n的路径,且最终的cost值为正值,初始值为100.中间各个room的值有正有负. ...

  4. 杭电 1272 并查集判断环

    话说这道题纠结了很久,,先写了一道类似的题,写这道题时感觉很难,,今天上午蓦然发现,,,,,,理解错题意了,,我去....害我想了那么长时间.这道题主要就是判断一下有没有环,还有就是节点数减去边数等于 ...

  5. 弗洛伊德龟兔赛跑算法(弗洛伊德判圈算法)

    弗洛伊德( 罗伯特・弗洛伊德)判圈算法(Floyd Cycle Detection Algorithm),又称龟兔赛跑算法(Tortoise and Hare Algorithm),是一个可以在有限状 ...

  6. 树状dp(这个人写得好多转来慢慢看)

    树状动态规划定义 之所以这样命名树规,是因为树形DP的这一特殊性:没有环,dfs是不会重复,而且具有明显而又严格的层数关系.利用这一特性,我们可以很清晰地根据题目写出一个在树(型结构)上的记忆化搜索的 ...

  7. Prim算法和Kruskal算法求最小生成树

    Prim算法 连通分量是指图的一个子图,子图中任意两个顶点之间都是可达的.最小生成树是连通图的一个连通分量,且所有边的权值和最小. 最小生成树中,一个顶点最多与两个顶点邻接:若连通图有n个顶点,则最小 ...

  8. LeetCode Course Schedule(有向图中是否存在环)

    问题:给出个课程个数,及前提条件对[u,v],即修课程v之间需要修课程u,问是否存在环 思路: 对于有向图的判断环 一种方式是使用dfs,访问结点的状态分为三种,white,gray,black,其中 ...

  9. c++ 不撞南墙不回头——树形动态规划(树规)

    不撞南墙不回头--树规总结                                         焦作一中信息学oy 之所以这样命名树规,是因为树规的这一特殊性:没有环,dfs是不会重复,而 ...

最新文章

  1. mysql innodb flus_MySQL参数解析innodb_flush_neighbors
  2. 转 -----那些年总也记不牢的IO
  3. electron 项目的搭建方式,借助 node 和 npm
  4. chrome inspect 远程调测:Chrome on Android之一 普通调试
  5. buck电路pscad仿真_100kVar SVG模块主电路选型分析[李博士]
  6. 数组的连续最大子段合
  7. 快速上手,教你开发第一个基于 AutoML 的量化投资决策应用
  8. [转载] 利用Python构建股票交易策略 !
  9. linux 计时程序,Linux下使用clock_gettime给程序计时
  10. strcat函数使用中出现的问题
  11. 关于select和option下拉框样式问题
  12. 想更快成长更应该关注的博客
  13. 【JAVASCRIPT】-【AES加密解密】01、前端AES加密解密的方式
  14. ROC曲线、AUC、Gini系数和KS值
  15. 计算机主机机箱连接各部件,电脑的各部件组装都是用什么联接的
  16. Chrome、Edge等浏览器多线程下载功能开启
  17. 自动填充被拆分的单元格
  18. 融合蓝牙与IoT 拓展Wi-Fi商业价值
  19. FeignClient调用接口接收不到参数问题
  20. Error (176310): Can't place multiple pins assigned to pin location Pin_F16

热门文章

  1. SQL Try Catch
  2. Flume NG之Agent部署和sink配置HDFS且吐槽CSDN博客及客服态度
  3. 在线实时大数据平台Storm版本兼容的问题
  4. Python学习三——列表
  5. float占几个字节_一个HashMap对象占多少字节?
  6. 用python openpyxl合并多个excel文件
  7. DevExpress WPF MVVM入门例子
  8. Oracle 数据库用户锁定与解锁,用户锁定最大密码失败次数设置方法,ORA-28000: the account is locked问题解决方法
  9. MySql提示服务已经启动成功但又提示can’t connect to MySQL server解决方法,mysql服务自动停止处理方法
  10. python 技术篇-pythoncom.PumpMessag()关闭、杀死它的进程,pythoncom.PumpMessag()运行卡住解决办法