http://acm.zznu.edu.cn/problem.php?id=1914

asd的甩锅计划

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

题目描述

大家对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
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>
#include<ctype.h>
#define INF 0x3f3f3f3f
#define max(a, b)(a > b ? a : b)
#define min(a, b)(a < b ? a : b)
#define N 1010 struct st
{
int a, b, c;
long long d;
} node[];
int n, m, f[N]; int Find(int x)
{
if(x != f[x])
f[x] = Find(f[x]);
return f[x];
} int cmp(const void *a, const void *b)
{
struct st *s1 = (struct st *)a, *s2 = (struct st *)b;
if(s1->c == s2->c)
return s1->d - s2->d;
return s1->c - s2->c;
} int main()
{
int i, a, b, c, k, l, num, ra, rb;
long long d, w;
while(scanf("%d%d", &n, &m) != EOF)
{
l = w = k = ;
num = ;
for(i = ; i<= n ; i++)
f[i] = i;
while(m--)
{
scanf("%d%d%d%lld", &a, &b, &c, &d);
node[k].a = a;
node[k].b = b;
node[k].c = c;
node[k].d = d;
k++;
}
qsort(node, k, sizeof(node[]), cmp);
for(i = ; i < k ; i++)
{
ra = Find(node[i].a);
rb = Find(node[i].b);
if(ra != rb)
{
l += node[i].c;
w += node[i].d;
num++;
f[ra] = rb;
}
if(num == n)
break;
}
if(num == n)
printf("%d %lld\n", l, w);
else
printf("村长你家铺子烧啦\n");
}
return ;
}

zznu 1914 asd的甩锅计划的更多相关文章

  1. asd的甩锅计划

    asd的甩锅计划 时间限制: 1 Sec  内存限制: 128 MB提交: 177  解决: 19[提交][状态] 题目描述 大家对hdu上面的畅通工程系列一定很熟悉了吧.比如如下一段,就是畅通工程里 ...

  2. 忽视自身问题并“积极甩锅”,新氧CEO金星还要脸吗?

    编辑 | 于斌 出品 | 于见(mpyujian) "互联网医美第一股"新氧果然还是爆雷了. 说"果然"是因为于见曾经针对新氧目前的商业模式进行过分析,认为以新 ...

  3. 记一次mysql请求超时甩锅历程

    今天下午业务找我说是线上环境一个mysql库很慢,请求出现了大量的超时,让帮忙看看,以下为查找过程及甩锅过程. 1. mysql请求超时,ok,我们所有线上mysql都是开启了慢查询日志的,查找慢查询 ...

  4. tornado大全(甩锅版)

    tornado简介 tornado是Python界中非常出名的一款Web框架,和Flask一样它也属于轻量级的Web框架. 但是从性能而言tornado由于其支持异步非阻塞的特性所以对于一些高并发的场 ...

  5. 运维甩锅神器---Jumpserver

    简介jumpserver 也就是跳板机,堡垒机,主要用于免密钥登陆web终端,可以对所有操作进行记录,录像!对所有服务器进行资产管理, 给开发人员分配登陆主机的权限和sudo权限,为运维人员省了很多手 ...

  6. 我是如何通过debug成功甩锅浏览器的:解决fixed定位元素,在页面滚动后touch事件失效问题

    如果你关注我应该知道,我最近对PC端页面进行移动适配.在这个过程中,为了节省用户300ms的时间,同时给予用户更及时的点击反馈(这意味着更好的用户体验),我在尝试使用移动端独有的 touchstart ...

  7. 大公司病,为什么要PPT背锅?

    新东方年会上,一曲吐槽式的<释放自我>火遍网络,据说这六位员工,是冒着被解雇的风险完成演出的,歌词内容涉及到非常敏感的大企业病,如机构臃肿.效率低下.内耗甩锅.拍领导马屁等等,而最高潮的部 ...

  8. 《.NET 5.0 背锅案》第7集-大结局:捉拿真凶 StackExchange.Redis.Extensions 归案

    第1集:验证 .NET 5.0 正式版 docker 镜像问题 第2集:码中的小窟窿,背后的大坑,发现重要嫌犯 EnyimMemcachedCore 第3集-剧情反转:EnyimMemcachedCo ...

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

    今天继续昨天的计划吧 1.新建项目.场景命名啥的都不说了吧. 2.直接开始新建一个Image,顺便把Image改名成Chessman 3.选中Image新建一个Text对象,调整下大小位置.这样就算完 ...

随机推荐

  1. Android列表视图(List View)

    Android列表视图(ListView) ListView是一个显示滚动项列表的示视图组(viewgroup),通过使用适配器(Adapter)把这些列表项自动插入到列表中.适配器比如从一个数组或是 ...

  2. ExtJs自学教程(2):从DOM看EXTJS

    <二> 从DOM看EXTJS 看标题可能有人会问,为啥好好的例子不看,得从DOM看起呢?答案是目标只为了一个:自运行结果把EXTJS看得更清楚点 首先,要看得靠点工具,带点放大镜什么吧?对 ...

  3. AutoResetEvent

    private static readonly AutoResetEvent autoResetEvent = new AutoResetEvent(false); private static vo ...

  4. group by的SQL语句

    有一张项目表 CREATE TABLE [ProjectTable] ( [ProjectID] NVARCHAR(16) NOT NULL, [ProjectName] NVARCHAR(20) N ...

  5. [HIHO1051]补提交卡(枚举,贪心)

    题目链接:http://hihocoder.com/problemset/problem/1051 思路:先排序,然后枚举连续的长度为m的子段,用这个段之后的第一个天数减去这个段之前的第一个天数再-1 ...

  6. java中的线程创建和使用

    Java中实现多线程有两种途径:继承Thread类或者实现Runnable接口.Runnable是接口,建议用接口的方式生成线程,因为接口可以实现多继承,况且Runnable只有一个run方法,很适合 ...

  7. 转:MVC2表单验证失败后,直接返回View,已填写的内容就会清空,可以这样做;MVC2输出文本;MVC2输出PDF文件

    ViewData.ModelState.AddModelError("FormValidator", message); foreach (string field in Requ ...

  8. acdream 1210 Chinese Girls' Amusement (打表找规律)

    题意:有n个女孩围成一个圈从第1号女孩开始有一个球,可以往编号大的抛去(像传绣球一样绕着环来传),每次必须抛给左边第k个人,比如1号会抛给1+k号女孩.给出女孩的人数,如果他们都每个人都想要碰到球一次 ...

  9. 01day1

    最大音量 动态规划 题意:给出一个初始值和一个变化序列 c,在第 i 步可以加上或减去 c[i],求 n 步之后能达到的最大值.有一个限定值 maxlevel,在变化过程中值不能超过 maxlevel ...

  10. AWK print学习

    Awk是一种处理结构数据并输出格式化结果的编程语言, Awk 是其作者 "Aho,Weinberger,Kernighan" 的简称. Awk通常被用来进行格式扫描和处理.通过扫描 ...