poj 1308 並查集判斷「樹」

2021-06-04 08:20:30 字數 603 閱讀 2142

思路:並查集

#includeusing namespace std;

int pre[500];

bool vis[500];

void make_set()//初始化

int find_set(int x)

void join(int x,int y)//並

int main()

make_set();

bool flag=true;

vis[x]=vis[y]=1;

int first=x;

if(x==y) flag=false;

else join(x,y);

while(scanf("%d%d",&x,&y)&&x!=0)

else join(x,y);

}for(int i=0;i<499;i++)//判斷根節點不唯一的情況

}if(flag) printf("case %d is a tree.\n",h++);

else printf("case %d is not a tree.\n",h++);

} return 0;

}

poj1308 簡單並查集

題目鏈結在這裡 題目大意 給出點和邊,問能否構成一棵樹 思路 用並查集水過去就行了。hdu1272和這道題一樣的,就是換了個題面和輸出。hdu1272 如下 include include include include define rep i,n for int i 0 i n i define...

POJ 1308(並查集,判連通,無環)

題意 給定一組資料 u,v 代表u指向 v。判斷這組資料是否形成一棵樹。題解 利用樹的特性 連通且無環。或者利用樹的性質 無環 或者聯通 且 v e 1 無環可以用並查集去判定。連通可以根據並查集確定有幾個根節點來判斷。邊數 v是加的邊數,點 e可以用 set得出。無環。e v 1。include ...

POJ 1308(樹的判定)

給定乙個有向圖,問這是不是樹?各種判 出現2條相同的邊不是樹,自己指向自己不是樹,除根節點入度為0外其它點入度必須為1,森林,環都不是樹 program p1308 const maxn 15 var i,j longint b array 1.maxn,1.maxn of boolean inde...