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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

杭电1325java实现

發(fā)布時間:2025/3/20 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 杭电1325java实现 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

題目鏈接
問題描述
樹是一個眾所周知的數(shù)據(jù)結(jié)構(gòu),它可以是空的(null,void,nothing),也可以是一組由節(jié)點之間的有向邊連接起來的一個或多個節(jié)點,滿足以下屬性。
只有一個節(jié)點稱為根,沒有有向邊指向它。

除根之外的每個節(jié)點都只有一條邊指向它。

從根到每個節(jié)點有一個唯一的有向邊序列。

例如,請考慮下面的插圖,其中節(jié)點用圓圈表示,邊用箭頭表示。前兩個是樹,但最后一個不是。

在這個問題中,將給出幾個由有向邊連接的節(jié)點集合的描述。對于其中的每一個,您將確定集合是否滿足樹的定義。

輸入
輸入將由一系列描述(測試用例)組成,后跟一對負(fù)整數(shù)。每個測試用例將包含一系列邊緣描述,后跟一對零。每個邊緣描述將由一對整數(shù)組成;第一個整數(shù)標(biāo)識邊緣從其開始的節(jié)點,第二個整數(shù)標(biāo)識邊緣指向的節(jié)點。節(jié)點號總是大于零。

輸出
對于每個測試用例,顯示行“Case k是一棵樹”或行“Case k不是樹”,其中k對應(yīng)于測試用例編號(它們從1開始按順序編號)。
Sample Input
6 8 5 3 5 2 6 4
5 6 0 0
8 1 7 3 6 2 8 9 7 5
7 4 7 8 7 6 0 0
3 8 6 8 6 4
5 3 5 6 5 2 0 0
-1 -1

Sample Output
Case 1 is a tree.
Case 2 is a tree.
Case 3 is not a tree.
雖然是并查集的運用,但是還是有一點不一樣的,這個樹的合并不僅僅是兩棵樹的合并,他是有順序的,輸入a,b,樹就是a為根,b為子,不僅僅如此,還有一點很重要的就是一個節(jié)點可以指向很多節(jié)點,然而只能有一個節(jié)點指向它,也就是說插入(a,b)中b的根節(jié)點必須是b,如果不滿足那么就不是該條件的tree,同時,還要滿足普通樹的無聯(lián)通,不分離(一棵樹)。成不成樹我是用boolean值判斷,最后只需判斷隨便一個節(jié)點的樹的路徑數(shù)是否等于該有的路徑樹。
下面附上代碼(注意(0,0)要單獨處理)

import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class 杭電oj1325 { static int tree[]=new int[10005]; static int end=0;//標(biāo)記最后的結(jié)果public static void main(String[] args) {Scanner sc=new Scanner(System.in); int exa=0;boolean bool=true;int t=1;for(int q=0;q<10005;q ) {tree[q]=-1;}while(sc.hasNext()){ int a=sc.nextInt();int b=sc.nextInt();if(a<0&&b<0)break;if(b!=0) {exa=b;}if(a==0&&b==0) {//(0,0)要特殊考慮if(bool&&(end==value(exa)-1)||exa==0) System.out.println("Case " t " is a tree.");else System.out.println("Case " t " is not a tree.""");exa=0;end=0;bool=true;tree=new int[10005];for(int i=0;i<10005;i ){tree[i]=-1;}}else if(bool){bool=union(a,b);}}}public static boolean union(int a,int b)//表示 a,b所在的樹合并{int a1=search(a);//a根int b1=search(b);//b根int a2=value(a);int b2=value(b);if(a1==b1||b!=b1) {return false;}else {end ;tree[a1] =tree[b1];//個數(shù)相加 注意是負(fù)數(shù)相加tree[b1]=a1; //b樹成為a的子樹,直接指向a; }return true;} public static int search(int a)//返回頭節(jié)點的數(shù)值{if(tree[a]>0)//說明是子節(jié)點{return search(tree[a]);}elsereturn a;}public static int value(int a)//返回a所在樹的大小(個數(shù)){if(tree[a]>0){return value(tree[a]);}elsereturn -tree[a];} }

本人小白,優(yōu)化和復(fù)雜優(yōu)化的不夠好,請大佬指出。

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

總結(jié)

以上是生活随笔為你收集整理的杭电1325java实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩欧美二区三区 | 国产91国语对白在线 | 一级视频黄色 | 艳母日本动漫在线观看 | 久久无码专区国产精品s | 久久久一区二区三区四区 | 黄色成人av| 欧美午夜精品久久久久久人妖 | 日韩在线1 | 日韩大片av| 亚洲午夜伦理 | 老女人做爰全过程免费的视频 | 欧美国产一级片 | 性喷潮久久久久久久久 | 色xxxxxx | 丰满少妇aaaaaa爰片毛片 | 亚洲欧美日本一区 | 婷婷综合社区 | 一级黄色在线视频 | 欧美精产国品一二三 | 亚洲蜜桃av一区二区 | 中文字幕在线看人 | 国产三级视频在线播放 | av网站有哪些 | 亚洲丁香网 | 精品国产一区二区三区四区阿崩 | 亚洲爆爽 | 91最新视频 | 一边摸内裤一边吻胸 | 日本一区二区三区在线观看视频 | xvideos永久免费入口 | 中国美女洗澡免费看网站 | 377人体粉嫩噜噜噜 www.av黄色 | 狠狠五月婷婷 | 日本色影院 | 麻豆精品视频在线 | 日韩一二三四区 | 色视频免费| 日韩欧美精品在线视频 | 欧美性猛交xxxxx水多 | 97在线免费视频观看 | 午夜影院欧美 | 日本三级免费 | 91精品国产综合久 | 久色资源 | 天堂免费av| 国产美女明星三级做爰 | 亚洲の无码国产の无码步美 | 99福利影院| 日韩在线导航 | 寻找身体恐怖电影免费播放 | 色呦呦入口 | 国产一区二区视频在线免费观看 | 久久久久国产精品一区二区 | 国产aa毛片 | 97在线免费 | 一区二区三区精彩视频 | 黑人精品无码一区二区三区AV | 成年人在线免费观看网站 | 色九月婷婷| 久久黄色网络 | av手机在线 | 黄色网址国产 | 日韩av在线一区 | 精品无码人妻少妇久久久久久 | 日批视频在线播放 | 欧美日韩一区二区三区四区五区六区 | 亚洲综合网站 | 新婚之夜玷污岳丰满少妇在线观看 | 欧美影院在线观看 | 日本三级中国三级99人妇网站 | 国产高潮失禁喷水爽到抽搐 | 欧美一级在线视频 | 又黄又爽视频在线观看 | 日日躁夜夜躁狠狠久久av | 久久久精品人妻一区二区三区四 | 性色av一区二区三区红粉影视 | 制服丝袜一区二区三区 | 国产精品久久久久毛片软件 | 亚洲视频在线观看免费视频 | 国产资源精品 | 激情爱爱网 | 日韩免费视频 | 骚视频在线观看 | 三男一女吃奶添下面 | www婷婷 | 韩国三级hd中文字幕 | 日韩av大片在线观看 | 日本网站在线免费观看 | 国产在线综合网 | www狠狠干 | 国产交换配乱淫视频免费 | 在线观看国产小视频 | 黄色一级在线视频 | 精品国产乱码一区二区三区99 | 制服中文字幕 | 国产成人精品a视频一区 | 中文字幕永久免费 | 无遮挡裸光屁屁打屁股男男 |