Problem I: 俊爷的局域网

分析:这道题就是要求求出俊爷能赚我多少钱!

然后这道题中,俊爷建设的所有路径都是最短的,然后还要求求出在这些最短路径中路径最大的一个--maxcost!

由于是最短路径了,所以我需要的支付的钱为:maxcost*(n-1);实际所花的钱其实就是将每条路径所花的钱的总和!

然后怎么求出每条路径的花费呢?那么就是使用最小生成树来解决了!在建立最小生成树的时候便可求出最大值maxcost了!

然后剩下的就好办了,直接就是一个减法就ok了!

代码如下:

#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn=5201314;
int p[maxn],cnt,mas;
struct qiu
{
    int f,t,mon;
    bool operator<(const qiu &a)const
    {
        return mon<a.mon;
    }
}road[maxn];
int find(int x)
{
    return p[x]==-1?x:p[x]=find(p[x]);
}
int ans()
{
    int sum=0;
    for(int i=0;i<cnt;i++)
    {
        int x=find(road[i].f);
        int y=find(road[i].t);
        if(x!=y)
        {
            sum+=road[i].mon;
            p[x]=y;
            if(mas<road[i].mon)
            mas=road[i].mon;//求出最小生成树里的最大节点的值!
        }
    }
    return sum;
}
int main()
{
    int n,m;
    while(~scanf("%d%d",&n,&m))
    {
        memset(p,-1,sizeof(p));//根节点初始化!
        cnt=mas=0;//初始化节点数和最大价钱数!
        while(m--)
        {
            int f,t,c;
            scanf("%d%d%d",&f,&t,&c);
            road[cnt].f=f;
            road[cnt].t=t;
            road[cnt++].mon=c;
        }
        sort(road,road+cnt);
        int sum=ans();//求出最小花费!
        //cout<<"本应该花费钱:"<<sum<<" ;"<<"最大花费:"<<mas<<endl;
        cout<<mas*(n-1)-sum<<endl;//俊爷能赚我多少钱呢??0.0
    }
    return 0;
}

Description

俊爷最近投资创办了一家局域网公司,这家公司的业务不仅有地球上的业务,也有外太空的业务。由于DB星球除了钱什么都没有,作为首领的DBZ请俊爷帮他们星球建成局域网。俊爷当然想拿下这笔生意,我们知道A与B联通并且B与C联通,那么A与C也是联通的,现在DBZ要求将DB星球上的所有城市都联通。

俊爷最近有点伤感,他本想趁这个机会多赚一笔,哪知精明的DBZ已经学会如何架设线路费用才是最小的。但DBZ给了俊爷一个机会,他对每条路径支付的费用为俊爷建设的所有路径中的最大值。那么现在俊爷想知道他到底可以赚到DBZ多少钱?(当然如果俊爷欺骗DBZ,那么后果很严重,DBZ将会寻找其他公司架设)。

俊爷架设一个单位长度的线路需要1DBB(DBB星球的货币)

Input

测试数据包含多组。

每组测试数据包含若干行,第一行包含n ( 1  < = n < = 100000 ) , m ( 1 < = m < = 1000000 ) 。代表DB星球有n个城市,m条路径。

接下来的m行每行包含3个整数,u,v ( 1< = u,v < = n ) , c ( 1 < = c < = 1000 000 000 ) 代表从城市u到城市v有一条距离为c的路径。

Output

输出仅包含一个数,为俊爷能赚多少钱。

Sample Input

3 3 1 2 31 2 52 3 5

Sample Output

2

时间: 2025-01-17 23:40:21

Problem I: 俊爷的局域网的相关文章

dijkstra算法:寻找到全图各点的最短路径

dijkstra算法介绍:即迪杰斯特拉算法,是从一个顶点到其余各顶点的最短路径算法,解决的是有向图中最短路径问题.迪杰斯特拉算法主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止,是一种广度优先的搜索方法. dijkstra算法原理:最优子路径存在.假设从S→E存在一条最短路径SE,且该路径经过点A,那么可以确定SA子路径一定是S→A的最短路径.证明:反证法.如果子路径SA不是最短的,那么就必然存在一条更短的'SA,从而SE路径也就不是最短,与原假设矛盾. dijkstra算法缺点:与此前

UESTC_韩爷的情书 2015 UESTC Training for Graph Theory&lt;Problem H&gt;

H - 韩爷的情书 Time Limit: 6000/2000MS (Java/Others)     Memory Limit: 262144/262144KB (Java/Others) Submit Status 某年某月某日,韩爷被妹子表白了\o/ 同时,韩爷收到了来自妹子的情书.在好奇心的驱使下,众人想要一览究竟. 显然,羞涩韩爷是不会把情书直接拿出来的. 假设情书长度为n+2,韩爷从中提取出n个长度为3的连续字符串,分给了n个人. 现在这n个人向你求助,能否帮他们把情书恢复出来. I

UESTC_韩爷的梦 2015 UESTC Training for Search Algorithm &amp; String&lt;Problem N&gt;

N - 韩爷的梦 Time Limit: 200/100MS (Java/Others)     Memory Limit: 1300/1300KB (Java/Others) Submit Status 一天,韩爷去百度面试,面试官给了他这么一个问题. 给你2万个字符串,每个字符串长度都是100,然后把2万个字符串丢入一个 set< string >g 中,问最终set里含有多少个元素? g 是一个用来存储字符串.具有去重功能的容器,即相同字符串在 g 中只能保留一个. 两个字符串相等,当且

UESTC_基爷的中位数 2015 UESTC Training for Search Algorithm &amp; String&lt;Problem D&gt;

D - 基爷的中位数 Time Limit: 5000/3000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit Status 给你N个数,X1,X2,...,XN, 基爷让我们计算任意两个数差的绝对值 ∣Xi−Xj∣ (1≤i<j≤N) . 这样,我们可以得到 C2N 个数. 现在,基爷希望聪明的你能用一个简单的程序求出这 C2N 个数的中位数! Input 输入有多组数据. 每组数据,第一行一个整数 N

UESTC_基爷与加法等式 2015 UESTC Training for Search Algorithm &amp; String&lt;Problem C&gt;

C - 基爷与加法等式 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit Status 一天,上小学的妹妹跑过来问基爷一道字母加法等式,基爷不假思索的便给出了一组可行解. 聪明的你发现,一个字母等式可能有多种不同解,于是你想编个程序计算一下 Input 输入包含多组数据. 每组数据第一行一个整数n,表示有n个字符串 3 ≤ n ≤ 10 接下来n行,每行有1个最多只

hidden node and exposed node problem

Exposed node problem In wireless networks, theexposed node problem occurs when a node is prevented from sending packets to other nodes because of a neighboring transmitter. Consider an example of 4 nodes labeled R1, S1, S2, and R2, where the two rece

九爷 带你走向职场 百度篇

 转眼即逝,步入IT行业的我不知不觉已经在这个领域打拼了三个年头.虽然称不上什么技术大牛,但一路也是乘风破浪.                             畅想未来;      起初的我刚刚大学毕业,拿着一份简历四处求职,那个时候可以说互联网行业已经步入正轨.转眼2017年已经过了三分之一 ,回头看去中国IT行业正在逐步攀升.从大型机械时代 个人PC时代 互联网时代 云计算时代 人工智能化时代 机器人时代 每个时代的变迁都考验着IT精英的迅速递进.随着云计算大数据的来临每个IT精英都

CDOJ 1330 柱爷与远古法阵【高斯消元,卡精度】

柱爷与远古法阵 Time Limit: 125/125MS (Java/Others)     Memory Limit: 240000/240000KB (Java/Others) Submit Status 众所周知,柱爷的数学非常好,尤其擅长概率论! 某日柱爷在喵哈哈村散步,无意间踏入了远古法阵! 法阵很奇怪,是一个长度为NN的走廊,初始时柱爷在最左边,现在柱爷要到最右边去! 柱爷的行动方式如下: 每个回合柱爷会投一次骰子,根据骰子上的点数每个回合柱爷会投一次骰子,根据骰子上的点数X,柱爷

及卢代蓉与卢俊辉亦然卢代蓉无念昔由

卢代蓉必卒,今人之早起梳妆,其室已完美无瑕,必使人见之惊叹,且器皆擦得锃亮,服多者衣柜都塞不下,实则两精之樟木之大衣柜被抬去后,衣皆无所施矣,室面今为乱者.卢俊辉亦一身狼狈之道:“爹娘,今人则不宜许慧姐将物去,其已为我卢家也,将来何处觅则多好东西去?”.”卢俊辉亦苦兮,那二十套笔置几上,诸皆名品美,乃是叶家久藏之,其平日不能用之,间有朋友来此显摆之,尚有藏书,皆是孤本,今得见之,此皆无矣,后何显摆?太夫人范氏亦怨卢大爷道:“爷,妾身是真心之苦,老爷今人独不给面子,那小蹄敢如此之威之,尚非恃老爷与