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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

HDU1856_More is better

發(fā)布時間:2023/12/10 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HDU1856_More is better 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題目大意: ??????? 讓你輸入n,然后輸入n組數(shù)據(jù),表示a與b的關(guān)系,最后求出關(guān)系最多一組的個數(shù)。注意(a與b有關(guān)系,b與c有關(guān)系,那么a與c就有關(guān)系) 解題思路: ??????? 并查集,開一個結(jié)構(gòu)體用來存儲以當(dāng)前節(jié)點(diǎn)為跟節(jié)點(diǎn)的數(shù)目,最后再歷遍一次就可以得到最大值了。 吐吐槽: ??????? 有點(diǎn)兒蛋疼,遇到了2個疼疼的問題,本來這是一道模板題啊,唉,問題1:交這道題目的時候,一交TLE了,疼,沒有改,再交,居然ac了,而且時間為600ms,這……瞬間斯巴達(dá)化~ 問題2:這個有點(diǎn)兒嚴(yán)重,我在程序里面一邊算并查集的num,的時候,順便求最大值,這樣錯,必須在最后從1->MAX歷遍一遍求最大值,這是為毛?現(xiàn)在沒時間,留著問題,明天慢慢啃吧。。 #include using namespace std; const int MAX=10000005; typedef struct n {int pre;int num;n(int a=1) :num(a) {} }N;N pe[MAX]; int find(int x) {int r=x,j;while(pe[r].pre!=r)r=pe[r].pre;while(pe[x].pre!=r){j=pe[x].pre;pe[x].pre=r;x=j;}return r; } //int find(int x)//查 //{ // if(x!=pe[x].pre) // { // pe[x].pre=find(pe[x].pre); // }//回溯 // return pe[x].pre; //} void init() {for(int i=0;i>n){init();int max=-1; for(i=1;i<=n;i++){cin>>a>>b;int f1=find(a);int f2=find(b);if(f1!=f2){pe[f2].pre=f1;pe[f1].num+=pe[f2].num;}/* if(pe[f1].num>max)//為什么不能這樣求最大值,還是搞不懂max=pe[f1].num;*/}for(i=1;imax)max=pe[i].num;}cout<

轉(zhuǎn)載于:https://www.cnblogs.com/cchun/archive/2011/11/09/2520179.html

總結(jié)

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

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