N - Is It A Tree?(判断环)
生活随笔
收集整理的這篇文章主要介紹了
N - Is It A Tree?(判断环)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題意,就是判斷這點點是不是組成的一顆樹,也就是判斷是否有環,就是沒看出來如果是森林怎么辦,試一試吧,最可惡的還沒有說有多少節點。。。。。就是個坑//坑,這題就是一個徹頭徹尾的坑,首先數據不連接,需要一個標記數組來判斷出現的都是那些節點,數組要開到10w,而且還有可能這棵樹沒有節點,是一個空樹,也就是只有 0 0,還要判斷是不是森林,要輸出這也是一顆樹.....確實很無聊的題目,需要讓人試錯
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;
}
?
?#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?(判断环)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: javac、jar使用实录
- 下一篇: 11 个 Visual Studio 代