POJ 2395 解題報告

2021-08-19 14:54:11 字數 959 閱讀 4919

題意:

找到最小生成樹里的最大邊。

思路:只需要將裸板子中,最小生成樹一直累加邊權的語句sum += edge[i].w;  更改為:

if(edge[i].w> max) max = edge[i].w;  最後輸出max即可。

本人ac**:

#include

#include

#include

#include

#include

#include

using namespace std;

typedef long long ll;

const int maxn = 1e5 + 5;

int fa[maxn];

int n, m;

int find(int u) edge[maxn];

bool cmp(edge a, edge b)

int main() {

intmax = 0;

scanf("%d%d", &n, &m);

for(inti = 1; i <= n; i++) fa[i] = i;

for(inti = 1; i <= m; i++) {

scanf("%d%d %d", &edge[i].u, &edge[i].v, &edge[i].w);

sort(edge+ 1, edge + m + 1, cmp);

intsum = 0;

for(inti = 1; i <= m; i++) {

intu = edge[i].u;

intv = edge[i].v;

if(find(u)!= find(v)) {

fa[find(u)]= find(v);

if(edge[i].w> max) max = edge[i].w;

printf("%d\n",max);

return0;

poj解題報告 1328

不得不說,這題是讓我飽受折磨,畢竟第一次做貪心演算法,而且wa了好多次,幸好有學長的幫助,最終找到了問題所在,是在快排上是問題,double高位不可向int低位轉換,由於一開始強制轉換導致雖然樣例和其他的測試資料過了,但還是wa,現在改完了就對了,附上ac ps 這題通過率是22 真心不簡單 如下 ...

poj解題報告 2586

這題我是用的貪心演算法,其實不用也可以,列舉也能解決,因為情況不多。因為是每連續5個月必有虧損,而一年只有1 5,2 6,3 7,4 8 8 12共8種情況。現在設盈餘為s,虧損為d,可列出以下幾種情況。ssssdssssdss 4ssssddsssddss 3s 2d ssdddssdddss 2...

poj解題報告 2635

這題特別好理解,就是 坑啊。題意就是給乙個數,這個數是兩個大素數的積,再給出乙個數,如果最小的素數比給的數大,列印good,否則列印bad和最小的素數。這題用的方法是高精度求模 同餘模定理。還有素數打表,把10 6內的素數全部預打表,在求模時則列舉到小於l為止。注意打表不能只打到100w,要保證素數...