HDU 1879 继续畅通工程

来源:互联网 发布:如何把淘宝微信群做大 编辑:程序博客网 时间:2024/05/02 02:09

已经修好的路一定要往里面加

#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;struct Edge{    int from,to,dist,status;    bool operator < (const Edge temp)const    {        if(status != temp.status)            return status > temp.status;        else            return dist < temp.dist;    }}e[5050];int fa[105];int Find(int x){    if(fa[x] == x) return fa[x];    fa[x] = Find(fa[x]);    return fa[x];}int main(){    int N;    while(scanf("%d", &N) != EOF && N)    {        int n = N*(N-1)/2;        for(int i = 0; i < n; i++)            scanf("%d%d%d%d", &e[i].from, &e[i].to, &e[i].dist, &e[i].status);        sort(e, e+n);        for(int i = 1; i <= N; i++)            fa[i] = i;        int ans = 0;        for(int i = 0; i < n; i++)        {            int x = Find(e[i].from);            int y = Find(e[i].to);            if(x == y)                continue;            else{                fa[x] = y;                if(!e[i].status)                    ans += e[i].dist;            }        }        printf("%d\n", ans);    }    return 0;}
0 0
原创粉丝点击