修路
来源:互联网 发布:淘宝童装名字大全 编辑:程序博客网 时间:2024/04/30 00:25
题解
分析
因为每个城市的贡献度为
那么,也就是给连接它的边减去
所以,对于一条边
然后跑一边最小生成树就可以了。
#include <cmath>#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <algorithm>#include <queue>const long long maxlongint=2147483647;const long long mo=1000000007;const long long N=100005;using namespace std;long long a[N],n,m,ans,fa[N];struct ddx{ long long x,y,cost;}b[N];bool cmp(ddx x,ddx y){ return x.cost<y.cost;}long long get(long long x){ if(x==fa[x]) return x; fa[x]=get(fa[x]); return fa[x];}int main() { scanf("%lld%lld",&n,&m); for(int i=1;i<=n;i++) fa[i]=i; for(int i=1;i<=n;i++) scanf("%lld",&a[i]); for(int i=1;i<=m;i++) { scanf("%lld%lld%lld",&b[i].x,&b[i].y,&b[i].cost); b[i].cost-=a[b[i].x]+a[b[i].y]; } sort(b+1,b+m+1,cmp); for(int k=0,i=1;i<=m && k<n-1;i++) { int x=get(b[i].x),y=get(b[i].y); if(x!=y) { fa[x]=y; ans+=b[i].cost; } } printf("%lld",ans);}
1 0
- 修路
- 修路方案
- 1046修路
- CSU_1023_修路
- 修路方案
- 修路方案
- [JZOJ4629] 修路
- 【JZOJ4629】修路
- BZOJ4774 修路
- [BZOJ4774]修路
- 山区修路
- 山区修路
- ACM;修路;3星;
- HDU 4081 秦始皇修路
- 修路方案 nyoj
- NYOJ118 修路方案
- 【pongo】【修路】【个人想法】
- BOJ 447. 修路
- Android export jar file和代码混淆。
- JAVA三大特性--多态
- leetcode_c++:链表:Merge Two Sorted Lists(021)
- 今天突然ubuntu下的virtual box出问题了
- Retrofit和okhttp的了解和使用
- 修路
- Android C#开发--The file "obj\Debug\android\bin\packaged_resources" does not exist.
- [JZOJ4628] 立方体
- IOS代理
- 实例 -- Loadrunner实现Android / IOS 手机APP压力测试
- 剑指offer之二进制中的1的个数与斐波那契数列
- NYOJ数数
- 把 Nginx 创建为 Windows 的一个服务
- 【JZOJ4628】立方体