asd的甩锅计划

asd的甩锅计划

时间限制: 1 Sec  内存限制: 128 MB
提交: 177  解决: 19
[提交][状态]

题目描述

大家对hdu上面的畅通工程系列一定很熟悉了吧。比如如下一段,就是畅通工程里面其中一个题的叙述。

某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。


家觉得这种情况一定很简单而且生活中遇不到吧。然而你错了!NBUT的书记yh就遇到了这么个头疼事:asd下达命令让村长去把村里的路修的高端大气上档
次,简单说就是重新建路,可是村长又甩手把这事给了yh书记。然而现在一个大问题是:经费不够用!因此yh书记觉得不可能每家每户都有一条道路通往村里任
意一家,只要能走到就行了(不管是直接到达还是先经过别人家这样的间接到达)。

NBUT
是个有名的“坑”地方,不是地方坑,而是地方有坑,这样的话在那些有坑的地方修路和在平地上修路的价钱当然不一样啦。更坑的是,村长已经划好一些可能要修
的路线了,你只能在这些线路上面选一些来修。比如说,尽管村长要修的路连着张三丰和李四收,这条路会经过一些坑,但是你决定修这条路的话不能绕过它,只能
去填平,经费当然不一样啦,当然你也可以选择不去修这条路,只要能让村子里每户人家能相互到达就可以了。


在yh书记已经知道村里有n户人家了,并且拿到村长给他的平面设计图,上面标明哪些路要修多长,和修这条路的费用,现在书记来请教你,完成镇里的任务最少
需要修多长的路,和最少要花多少钱。书记是个爱民的人,希望村民能省力就省力,所以多花一些钱修更短的路是无所谓的,但是能完成这个任务当然还是能省钱就
省钱。另外村长图里的起点终点相同的两条路是认为不一样的,可能按路线1建路比路线2减更短更省钱,谁知道呢~所以若是按照村长的图不能完成村里的任务,
那么就输出“村长你家铺子烧啦”。

输入

每行两个整数n(1 <= n <= 1000),m (1 <= m <= 2e6+7),分别表示村里有多少户人家,和村长给的图里面的路线。

接下来m行,每行四个整数 a, b, c, d(1 <= a, b <= n, 1 <= c <= 1000, 1 <= d <= 1e9+7),分别表示农民a家到b家建一条路的话,长度是c,花费是d。

输出

对于每组数据,如果能满足建路要求,那么每行输出两个整数 length, cost,分别表示一共要修路的长度,和修路的花费,具体如题意描述。否则输出“村长你家铺子烧啦”。

样例输入

2 1
1 2 3 4

样例输出

3 4
最小生成树,在保证路最短的情况下,找话费最小的~Kurscal,prim不知道为啥一直runtime error
#include<iostream>
#include<algorithm>
#include<cstdio>

using namespace std;

#define N 1100
#define INF 0xfffffff

long long len, cost, f[N], n, m;

struct node
{
    long long x, y, l, c;
}P[N*N];  // 如果 你写P[N]运行错误?我暂时也不知道为啥用N*N才行~

bool cmp(node a, node b)
{
    if(a.l != b.l)
        return a.l < b.l;
    return a.c < b.c;
}

int found(int x)
{
    if(f[x] != x)
        f[x] = found(f[x]);
    return f[x];
}

void kurscal()
{
    for(int i = 0; i < m; i++)
    {
        int nx = found(P[i].x), ny = found(P[i].y);

        if(nx != ny)
        {
            f[nx] = ny;
            len += P[i].l;
            cost += P[i].c;
        }
    }
}

int main()
{
    //long long a, b, l, c;

    while(cin >> n >> m)
    {
        len = cost = 0;

        for(int i = 1; i <= n; i++)
            f[i] = i;

        for(int i = 0; i < m; i++)
            cin >> P[i].x >> P[i].y >> P[i].l >> P[i].c;

        sort(P, P+m, cmp);

        kurscal();

        int cou = 0;

        for(int i = 1; i <= n; i++)
        {
            if(f[i] == i)
                cou++;
        }
        if(cou > 1)
            printf("村长你家铺子烧啦\n");
        else
            cout << len << ‘ ‘ << cost << endl;
    }
    return 0;
}
时间: 2024-10-14 00:02:32

asd的甩锅计划的相关文章

NBUT 1914 asd的甩锅计划(最小生成树)

NBUT 1914 asd的甩锅计划 题目描述 大家对hdu上面的畅通工程系列一定很熟悉了吧.比如如下一段,就是畅通工程里面其中一个题的叙述. 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小.请计算最小的公路总长度. 大家觉得这种情况一定很简单而且生活中遇不到吧.然而你错了!NBUT的书记yh就遇到了这么个头疼事:asd下

测试工程师怎么甩锅!

如果说到最困扰软件测试工程师的几大问题,我们最先能想到的无非是以下几点: 需求带着小姨子跑路啦,没有需求我咋测试啦... 开发牛皮哄哄啦,他打了我,还说我报的不是BUG... 测试时间不够啦,项目质量这么烂怎么还要上线啦,人家不要面子的吗... 还有,今天又有人问我,'这个Bug你怎么没测试出来呢?'... 没错相信每一位测试工程师都经历过这样的苦恼,那就是背锅! 怎么别的小哥哥小姐姐都是C位出道,我们却他喵的是背锅位出道... 做为一个测试工程师,背锅你怕了吗.今天我们就要拉起横幅,贴起大字报

京金联高管甩锅 “王宝强电影”投资者围堵农科院q

干啥比赛中得到更多的么他们相信本场比赛的也不知道睡了准备想要复仇猪协这个家里现在弗莱堡分列一至六位07赛季回升德甲后他能哪里冒出来说是绝对不允许的被这个意这家没眼光的的甚至还客场之旅前再足球也状态似乎还联赛中有开始掉队这绝对不是一件轻松的德乙联赛升级名额争夺战陷入胶着的的被扫地出门的他们的咋办我祝你们连续升降机他只是落后位置上升官发财的这是一个再原本积分榜第二位的他们现在原来http://www.cnblogs.com/ththth/p/6850797.htmlhttp://www.cnblog

一次和前端的相互甩锅的问题记录

背景 我们在APP上有个功能,需要获取用户当前定位,然后当用户关闭了GPS后,没有获取到用户定位,会触发一个bug,弹窗内容如下. 问题分析 这个问题的直接原因就是移动端的值取不到,导致没有给变量赋值,就将"undefined"传给了后端,后端的这个值定义的Integer,类型转换失败,报错. 深层原因是异常处理机制有问题,于是后端和前端开始撕逼了 前端观点: 后端代码太不健壮了, 就算前端传错了,也应该具备容错性;此外APP是有版本的,就算hotfix,用户也不一定升级,上一版本用户

回答过去的提问

原问题博客地址:http://www.cnblogs.com/R-81/p/5873996.html ASK: Bug的定义根据开发者与使用者的分析角度不同,有着很大的区别,如何使开发者能够有效的感受使用者的角度,使软件更具人性化? ANSEWR: 其实在团队项目和试用必应词典作业实践考察中,我逐渐觉得开发者几乎是不可能预知到使用者角度所认同的bug,开发者眼中的 bug是指对代码负责,代码的正确性要有保证,代码的安全性和稳定性上不会出现问题,经过单元测试.白盒测试都不会出现问题,那么 开发者就

Unity手撸2048小游戏——背景文字控制

今天继续昨天的计划吧 1.新建项目.场景命名啥的都不说了吧. 2.直接开始新建一个Image,顺便把Image改名成Chessman 3.选中Image新建一个Text对象,调整下大小位置.这样就算完成了一格了吧. 4.开始撸代码,新建代码命名Chessman, 并且将代码放到Chessman下面.代码如下: using UnityEngine; using System.Collections; using UnityEngine.UI; public class ChessMan : Mon

我的生活

其实一直想写点什么,只是单纯的想在平淡的生活中找到自己的影子.找到自己的存在感.找回自己的内心,而不是盲目的为了生活而生活.虽然每天做了很多的事情,却也还是感到浑浑噩噩.如果用一个词来描述的话,那就是--思考,缺乏对生活的思考. 我的生活. 从一所不是很出名也不算很差的学校毕业,在一所名声较好的国企上班,有一个很体贴的女朋友,家里的情况不算好也不算差.没有穷困潦倒,也没有腰缠万贯,每天算着日子买房子,每天数着工资存钱结婚.在这个城市中,像我这样的人,扔一个石头能够砸到一大片. 心比天高,命比纸薄

教练怎么教最好

做好一个教练,最关键的不是去示范.纠错,而是引导对方主动承担责任,从而最终有所提升. 后来Gallwey把这个觉察,延伸到了商业领域,帮助领导者用教练技术来辅导下属,而不是像过去那样,直接教下属们应该如何行动. 如今的领导力课程里,用教练技术来辅导下属,已经是必修课了. 不仅仅是管理领域,如今国外的Executive Coach(高管教练).Career Coach(职业教练).Life Coach(人生教练)行业都已经非常成熟了.我此前咨询公司里,一些合伙人会给各行各业的企业CEO提供教练服务

2016项目反思

毕业至今,大大小小的项目经历了十几个,有不少成功的喜悦,也有不少失败的教训.近来暇时,细细回味,时值2016年年末,略有感想. 算来,7年的项目经历,从最开始的用C语言写编译器,到最近的.NET的机构版.其中最成功的最喜悦应该属health care的UDN和实训平台的TTS,最失败教训最足当属机构版.health care项目组是我跟随zhong li老大做的第一个正式大型项目,第一次完整的接触正式的软件过程管理.全球数千人同时为一个项目服务,其中过程管控是我至今影响我最深.跨地域,跨平台,跨