日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

N - Is It A Tree?(判断环)

發布時間:2025/4/14 编程问答 12 豆豆
生活随笔 收集整理的這篇文章主要介紹了 N - Is It A Tree?(判断环) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題意,就是判斷這點點是不是組成的一顆樹,也就是判斷是否有環,就是沒看出來如果是森林怎么辦,試一試吧,最可惡的還沒有說有多少節點。。。。。就是個坑//坑,這題就是一個徹頭徹尾的坑,首先數據不連接,需要一個標記數組來判斷出現的都是那些節點,數組要開到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

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的N - Is It A Tree?(判断环)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。