zoukankan      html  css  js  c++  java
  • POJ 1861 Network(最小生成树)


    题目链接:http://poj.org/problem?id=1861 

    求出最小生成树边的个数,最大边权,和所有边。 

    代码:

    #include <algorithm>
    #include <iostream>
    #include <cstring>
    #include <cstdio>
    using namespace std;
    const int N=1001;
    int map[N],ans[N];
    int num,maxn,k,i;
    struct edge
    {
        int a;
        int b;
        int value;
    }p[N*N];
    int find(int x)
    {
        int r=x;
        while(r!=map[r])
        {
            r=map[r];
        }
        return r;
    }
    void merge(int x,int y)
    {
        int x1=find(x);
        int y1=find(y);
        if(x1!=y1)
        {
            if(p[i].value>maxn)
                maxn=p[i].value;
            ans[k++]=i;
            map[x1]=y1;
            num++;
        }
    }
    bool cmp(const struct edge &a,const struct edge &b)
    {
        return a.value<b.value;
    }
    int main()
    {
        int n,m;
        while(~scanf("%d%d",&n,&m))
        {
            k=0;
            for(i=0;i<=n;i++)
                map[i]=i;
            for(i=0;i<m;i++)
            {
                scanf("%d%d%d",&p[i].a,&p[i].b,&p[i].value);
            }
            num=maxn=0;
            sort(p,p+m,cmp);
            for(i=0;i<m && num<n;i++)
            {
                merge(p[i].a,p[i].b);
            }
            printf("%d\n",maxn);
            printf("%d\n",num);
            for(i=0;i<num;i++)
            {
                printf("%d %d\n",p[ans[i]].a,p[ans[i]].b);
            }
        }
        return 0;
    }

  • 相关阅读:
    基于redis实现的延迟消息队列
    Redis实现求交集操作结果缓存的设计方案
    限流算法之漏桶算法、令牌桶算法
    Apache设置防DDOS模块mod_evasive
    FastCGI技术
    详解强大的SQL注入工具——SQLMAP
    nginx根据域名做http,https分发
    Nginx配置SSL证书部署HTTPS网站
    JProfiler学习笔记
    Mysql压测工具mysqlslap 讲解
  • 原文地址:https://www.cnblogs.com/pony1993/p/2644567.html
Copyright © 2011-2022 走看看