NOI:253 丛林里的路

原题链接

NOI:253 丛林里的路_第1张图片

NOI:253 丛林里的路_第2张图片 

NOI:253 丛林里的路_第3张图片 

题解:

最小生成树算法Kruskal以及并查集的思想,对所有边排序,并且依次判断每条边两个点的所属类别,不同即合并,如果边数等于n-1即为结束

#include 
#include 
#include 
#include 
#include 
using namespace std;
int f[28],n;
struct point {
    int x,y,wigh;
};
point all[80];
bool compare(point a,point b){
    return a.wigh>n){
        int sum=0;
        if(n==0)return 0;
        int size=0;
        for(int i=0;i>x>>c;
            for(int j=0;j>y>>w;
                all[size].y=y-'A';
                all[size].wigh=w;
                all[size].x=x-'A';
                size++;
            }
        }
        sort(all,all+size,compare);
        for(int i=0;i

 

你可能感兴趣的:(NOI)