UVA 1664(p382)----Conquer a New Region
2016-02-26 14:07
423 查看
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; typedef long long LL; const int maxn=200000+50; struct point { LL u,v,w; }; point g[maxn]; LL sum[maxn],n; LL fa[maxn],num[maxn]; LL Find(LL x) { return x==fa[x]?x:fa[x]=Find(fa[x]); } void Union(LL x,LL y) { fa[x]=y; } int cmp(point a,point b) { return a.w>b.w; } void solve() { for(int i=0; i<n-1; i++) { LL x=Find(g[i].u); LL y=Find(g[i].v); LL tmp1=sum[x]+num[y]*g[i].w; LL tmp2=sum[y]+num[x]*g[i].w; if(tmp1>tmp2) {swap(x,y);swap(tmp1,tmp2);} Union(x,y); sum[y]=tmp2; num[y]+=num[x]; } printf("%lld\n",sum[Find(n)]); } void init() { memset(sum,0,sizeof(sum)); for(int i=1; i<=n; i++) fa[i]=i; for(int i=1; i<=n; i++) num[i]=1; } int main() { while(scanf("%lld",&n)==1) { init(); for(int i=0; i<n-1; i++) scanf("%lld%lld%lld",&g[i].u,&g[i].v,&g[i].w); sort(g,g+n-1,cmp); solve(); } return 0; }
相关文章推荐
- AbstractMethodError using UriBuilder on JAX-RS
- 三、Android UiAutomator 相关JAVA知识
- UI设计(流程/界面)设计规范
- 一个互联网公司的面试,对两个字符串比较,如果它们是打乱顺序的同一个字符串,返回true.
- 二、我学习的第一个uiautomator从创建到运行结束
- 一、Android_UiAutomator(安卓UI自动化)环境搭建
- iOS 之 UITableView 的多选和全部选择的功能
- [置顶] request.getParameter() VS request.getAttribute()
- UVA 1626(p278)----Brackets Sequence
- The 6th Zhejiang Provincial Collegiate Programming Contest->Problem I:A Stack or A Queue?
- UVA 1612(p254)----Guess
- UVA 1605(p236)----Building for UN
- UVA 1594(p135)----Ducci Sequence
- UVA 1584(p52)----Circular Sequence
- 通过GUID确保winform运行唯一实例
- Web UI 网站用户界面设计命名规范
- Spark SQL: Error in query: undefined function错误的解决方法
- 8.UIAlertView
- SonicUI运行机制的粗略分析
- UITaableView的section间隔设置