asd的甩锅计划
asd的甩锅计划
时间限制: 1 Sec 内存限制: 128 MB
提交: 177 解决: 19
[提交][状态]
题目描述
家觉得这种情况一定很简单而且生活中遇不到吧。然而你错了!NBUT的书记yh就遇到了这么个头疼事:asd下达命令让村长去把村里的路修的高端大气上档
次,简单说就是重新建路,可是村长又甩手把这事给了yh书记。然而现在一个大问题是:经费不够用!因此yh书记觉得不可能每家每户都有一条道路通往村里任
意一家,只要能走到就行了(不管是直接到达还是先经过别人家这样的间接到达)。
是个有名的“坑”地方,不是地方坑,而是地方有坑,这样的话在那些有坑的地方修路和在平地上修路的价钱当然不一样啦。更坑的是,村长已经划好一些可能要修
的路线了,你只能在这些线路上面选一些来修。比如说,尽管村长要修的路连着张三丰和李四收,这条路会经过一些坑,但是你决定修这条路的话不能绕过它,只能
去填平,经费当然不一样啦,当然你也可以选择不去修这条路,只要能让村子里每户人家能相互到达就可以了。
在yh书记已经知道村里有n户人家了,并且拿到村长给他的平面设计图,上面标明哪些路要修多长,和修这条路的费用,现在书记来请教你,完成镇里的任务最少
需要修多长的路,和最少要花多少钱。书记是个爱民的人,希望村民能省力就省力,所以多花一些钱修更短的路是无所谓的,但是能完成这个任务当然还是能省钱就
省钱。另外村长图里的起点终点相同的两条路是认为不一样的,可能按路线1建路比路线2减更短更省钱,谁知道呢~所以若是按照村长的图不能完成村里的任务,
那么就输出“村长你家铺子烧啦”。
输入
输出
样例输入
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才行~因为最多可以有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 = ; 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 = ; for(int i = ; i <= n; i++)
f[i] = i; for(int i = ; i < m; i++)
cin >> P[i].x >> P[i].y >> P[i].l >> P[i].c; sort(P, P+m, cmp); kurscal(); int cou = ; for(int i = ; i <= n; i++)
{
if(f[i] == i)
cou++;
}
if(cou > )
printf("村长你家铺子烧啦\n");
else
cout << len << ' ' << cost << endl;
}
return ;
}
prim
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<algorithm>
#include<queue>
#include<iostream>
using namespace std;
#define maxn 1010
typedef long long LL;
const int INF = ;
bool vis[maxn];
int m, n, dist[maxn];
LL cost[maxn]; struct node
{
int L, V;
}maps[maxn][maxn]; void init()
{
memset(vis, false, sizeof(vis) );
memset(cost, , sizeof(cost));
for(int i=; i<=n ;i++)
{
dist[i] = INF;
for(int j=; j<=n; j++)
maps[i][j].L = maps[i][j].V = INF;
maps[i][i].L = maps[i][i].V = ;
} } void Prime()
{
dist[] = ;
for(int i=; i<n; i++)
{
int Index = -, Min = INF, MinCost = INF;
for(int j=; j<=n; j++)
{
if(!vis[j] && (Min > dist[j] || (Min == dist[j] && MinCost > cost[j])) && dist[j] != INF )
Min = dist[j], Index = j, MinCost = cost[j];
} if(Index == -)
{
puts("村长你家铺子烧啦");
return ;
} vis[Index] = true; for(int j=; j<=n; j++)
{
if(!vis[j] && (dist[j] > maps[Index][j].L || (dist[j] == maps[Index][j].L && cost[j]>maps[Index][j].V) ) )
{
dist[j] = maps[Index][j].L;
cost[j] = maps[Index][j].V;
} }
}
LL Len = , Cost = ; for(int i=; i<=n; i++)
{
Len += dist[i];
Cost += cost[i];
}
printf("%lld %lld\n", Len, Cost);
} int main()
{
while(scanf("%d %d",&n, &m) != EOF)
{
init();
while(m --)
{
int a, b, c, d;
scanf("%d %d %d %d",&a, &b, &c, &d); if(maps[a][b].L > c || (maps[a][b].L == c && maps[a][b].V > d) )
maps[a][b].L = c, maps[a][b].V = d;
maps[b][a] = maps[a][b];
}
Prime();
}
return ;
}
非得结构体存储才对吗
asd的甩锅计划的更多相关文章
- zznu 1914 asd的甩锅计划
http://acm.zznu.edu.cn/problem.php?id=1914 asd的甩锅计划 时间限制: 1 Sec 内存限制: 128 MB提交: 114 解决: 10[提交][状态] ...
- 忽视自身问题并“积极甩锅”,新氧CEO金星还要脸吗?
编辑 | 于斌 出品 | 于见(mpyujian) "互联网医美第一股"新氧果然还是爆雷了. 说"果然"是因为于见曾经针对新氧目前的商业模式进行过分析,认为以新 ...
- 记一次mysql请求超时甩锅历程
今天下午业务找我说是线上环境一个mysql库很慢,请求出现了大量的超时,让帮忙看看,以下为查找过程及甩锅过程. 1. mysql请求超时,ok,我们所有线上mysql都是开启了慢查询日志的,查找慢查询 ...
- tornado大全(甩锅版)
tornado简介 tornado是Python界中非常出名的一款Web框架,和Flask一样它也属于轻量级的Web框架. 但是从性能而言tornado由于其支持异步非阻塞的特性所以对于一些高并发的场 ...
- 运维甩锅神器---Jumpserver
简介jumpserver 也就是跳板机,堡垒机,主要用于免密钥登陆web终端,可以对所有操作进行记录,录像!对所有服务器进行资产管理, 给开发人员分配登陆主机的权限和sudo权限,为运维人员省了很多手 ...
- 我是如何通过debug成功甩锅浏览器的:解决fixed定位元素,在页面滚动后touch事件失效问题
如果你关注我应该知道,我最近对PC端页面进行移动适配.在这个过程中,为了节省用户300ms的时间,同时给予用户更及时的点击反馈(这意味着更好的用户体验),我在尝试使用移动端独有的 touchstart ...
- 大公司病,为什么要PPT背锅?
新东方年会上,一曲吐槽式的<释放自我>火遍网络,据说这六位员工,是冒着被解雇的风险完成演出的,歌词内容涉及到非常敏感的大企业病,如机构臃肿.效率低下.内耗甩锅.拍领导马屁等等,而最高潮的部 ...
- 《.NET 5.0 背锅案》第7集-大结局:捉拿真凶 StackExchange.Redis.Extensions 归案
第1集:验证 .NET 5.0 正式版 docker 镜像问题 第2集:码中的小窟窿,背后的大坑,发现重要嫌犯 EnyimMemcachedCore 第3集-剧情反转:EnyimMemcachedCo ...
- Unity手撸2048小游戏——背景文字控制
今天继续昨天的计划吧 1.新建项目.场景命名啥的都不说了吧. 2.直接开始新建一个Image,顺便把Image改名成Chessman 3.选中Image新建一个Text对象,调整下大小位置.这样就算完 ...
随机推荐
- pandas向左移动非空单元格
碰到个小问题, 因为需要更改excel 的行为. 处理最多的还是excel的事, 不过看起来是excel.实际上对pandas 的库的熟悉.读取,更改,应用等等,方法. 十分有用. 先说需求,本来的表 ...
- 上海站赛后总结&反思
上海站赛后总结&反思 赛后反思一下,本应该做出3~4题的场,最后只出了2题. 先回顾一下比赛,比赛开始10分钟,队友dy就想出了B题是trie树的模板题,然后让mqy码,第一次交的时候有地方打 ...
- 深信达加密下禁用IME
1.控制面板 2.管理工具 3.计算机管理 4.系统工具 5.任务计划程序 6.任务计划程序库 7.Microsoft 8.Windows 9.TextServicesFramework 10.MsC ...
- 推荐一个 Java 里面比较牛逼的公众号!
今天给大家推荐一个牛逼的纯 Java 技术公众号:Java技术栈,作者:栈长. Java程序员.Java爱好者扫码关注吧! 确实牛逼,几十万人关注了,原创文章350+,好友都 3000+ 关注了. 栈 ...
- secureCRT安装,破解,连接linux机器(含安装包)
1. 为什么需要安装secureCRT 我们的项目运行在服务器上,如果出现什么问题,或者升级的时候,需要对服务器进行操作,把处理好的项目发布到服务器上.如果我们就在服务器身边,那么直接在服务器上进行操 ...
- 20、numpy——IO
NumPy IO Numpy 可以读写磁盘上的文本数据或二进制数据. NumPy 为 ndarray 对象引入了一个简单的文件格式:npy. npy 文件用于存储重建 ndarray 所需的数据.图形 ...
- python学习第三十天函数的形参,实参及函数文档
python函数的形参是定义函数def 函数名 小括号里面的变量,实参是调用函数时候的值,函数文档是提供函数功能的开发文档,下面 详细说明系列方法 1,函数的形参 def chan(name): pr ...
- spring(五):spring中Aware接口的使用
spring中自定义组件需要使用spring的底层组件时,可以通过自定义组件实现相关XxxAware接口,重写其中的方法进而实现 例如:自定义一个组件,该组件中需要使用ApplicationConte ...
- Nexus搭建Maven私服中央仓库
一.概述 1.概要 现在的项目基本都是用Maven来管理工程,这样一来在公司内容搭建一个私服就非常有必要了,这样一来可以管理公司内部用的JAR包,也可以管理第三方的各种JAR来,以免每次都要从外网的仓 ...
- Djano中static和media文件路径的设置
对于常用的css.js.image和常用的工具类在django项目中要设置一个全局的路径,对所有的app都可以访问到这个路径下的文件 1在django项目的setting文件中设置对应的static和 ...