[JZOJ4629] 修路
来源:互联网 发布:mysql 查找所有子部门 编辑:程序博客网 时间:2024/04/29 16:05
Description
Solution
观察题目,我们可以发现
- 选一条边并不影响其他边对答案的贡献。
所以连接
然后这样跑一遍最小生成树
Code
#include<cstdio>#include<cstdlib>#include<cmath>#include<cstring>#include<algorithm>#include<iostream>#define fo(i,a,b) for(i=a;i<=b;i++)#define fod(i,a,b) for(i=a;i>=b;i--)using namespace std;struct node{ int x,y,z;}rd[100005];int m,n,a[100005],ft[100005];bool cmp(node x,node y){ return x.z<y.z;} int getf(int k){ if (ft[k]==0) return k; ft[k]=getf(ft[k]); return ft[k];}int main(){ cin>>n>>m; int i,j; fo(i,1,n)scanf("%d",&a[i]); fo(i,1,m) { scanf("%d%d%d",&rd[i].x,&rd[i].y,&rd[i].z); rd[i].z-=a[rd[i].x]+a[rd[i].y]; } sort(rd+1,rd+m+1,cmp); i=0,j=0; int ans=0; while(j<n-1) { i++; int fx=getf(rd[i].x),fy=getf(rd[i].y); if (fx!=fy) { ft[fx]=fy; ans+=rd[i].z; j++; } } cout<<ans;}
0 0
- [JZOJ4629] 修路
- 【JZOJ4629】修路
- 【jzoj4629】【修路】【最小生成树】
- 修路
- 修路方案
- 1046修路
- CSU_1023_修路
- 修路方案
- 修路方案
- BZOJ4774 修路
- [BZOJ4774]修路
- 山区修路
- 山区修路
- ACM;修路;3星;
- HDU 4081 秦始皇修路
- 修路方案 nyoj
- NYOJ118 修路方案
- 【pongo】【修路】【个人想法】
- 一分钟帮你提升Android studio 编译速度
- Java中使用Jedis操作Redis
- Cocos2dx-3.x中常用切换场景特效和方式
- AsyncTask模拟小应用 AsyncTask步骤
- textview添加超链接
- [JZOJ4629] 修路
- Java中的static关键字解析
- Android工具类之网络相关辅助类
- flash知识点
- Linux_SSH_SSH连接的基本指令
- sql语句学习总结
- 解决listview在coordinatorlayout中无法响应滚动事件的问题
- Struts2的配置
- 常用免费的WebService列表