題目大意:有n個點(穀倉),有m條路,以及他們的造價,找到最大的造價,其中每乙個穀倉要能夠到到達其他的任意乙個穀倉。
解題思路:mst最大生成樹,其中需要注意的是要保證連通性,這一點把並查集遍歷一遍,看是否有乙個以上的代表元即可。
#include#include#include#includeusing namespace std;
const int maxn=100000+1000;
int u[maxn],v[maxn],w[maxn],p[maxn],r[maxn],n,m;//陣列u儲存起始點,陣列v儲存終點,陣列w儲存邊權,m是邊數,n是點數
int cmp(const int i,const int j) //求的是最大生成樹
int find(int x)
int kruskal()
if(cou==n-1)
}if(cou1) break;
}if(cnt==1) printf("%d\n",tmp);
else printf("-1\n");
}return 0;
}
POJ 2377 最大生成樹
每日一看 題意 現在有乙個人給人修建一些線路,當然,我們想要少花錢消費,人家就想多多賺你的錢了,現在就給出這麼乙個問題 讓你求修得所有電路能賺取的最大利潤,若電路不能被全部修完,輸出 1 分析 最小生成樹模板改一改就好啦 include include include using namespace...
poj2377 最大生成樹kruskal
題意 現在有乙個人給人修建一些線路,當然,我們想要少花錢消費,人家就想多多賺你的錢了,現在就給出這麼乙個問題 讓你求修得所有電路能賺取的最大利潤,若電路不能被全部修完,輸出 1 思路 其實只是一道kruskal的模板題,但是他求的是最大生成樹,只要一開始排序的時候把邊從大到小排即可 或者prim演算...
poj解題報告 1328
不得不說,這題是讓我飽受折磨,畢竟第一次做貪心演算法,而且wa了好多次,幸好有學長的幫助,最終找到了問題所在,是在快排上是問題,double高位不可向int低位轉換,由於一開始強制轉換導致雖然樣例和其他的測試資料過了,但還是wa,現在改完了就對了,附上ac ps 這題通過率是22 真心不簡單 如下 ...