博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BZOJ2563 阿狸和桃子的游戏
阅读量:5122 次
发布时间:2019-06-13

本文共 944 字,大约阅读时间需要 3 分钟。

  将边权平均分到两顶点,按点权从大到小取即可。这样的话如果某人取到两点则获得边权,否则对两人均无影响,并且最后每条边都会处于其中的一种情况。假装证明了正确性。

#include
#include
#include
#include
#include
#include
using namespace std;int read(){ int x=0,f=1;char c=getchar(); while (c<'0'||c>'9') { if (c=='-') f=-1;c=getchar();} while (c>='0'&&c<='9') x=(x<<1)+(x<<3)+(c^48),c=getchar(); return x*f;}#define N 10010int n,m,a[N],ans;int main(){#ifndef ONLINE_JUDGE freopen("bzoj2563.in","r",stdin); freopen("bzoj2563.out","w",stdout); const char LL[]="%I64d\n";#else const char LL[]="%lld\n";#endif n=read(),m=read(); for (int i=1;i<=n;i++) a[i]=read()<<1; for (int i=1;i<=m;i++) { int x=read(),y=read(),z=read(); a[x]+=z,a[y]+=z; } sort(a+1,a+n+1);reverse(a+1,a+n+1); for (int i=1;i<=n;i++) if (i&1) ans+=a[i];else ans-=a[i]; cout<<(ans>>1); return 0;}

 

转载于:https://www.cnblogs.com/Gloid/p/9576603.html

你可能感兴趣的文章
[ 原创 ]Centos 7.0下安装 Tomcat8.5.15
查看>>
最大密度子图建图 POJ 3155
查看>>
LPSTR LPTSTR
查看>>
排序算法-快速排序
查看>>
【Java】基础篇-排序二叉树
查看>>
oracle 创建表,增加修改删除字段
查看>>
css:设置div边框透明+渐变
查看>>
南阳779
查看>>
谈谈我对攻读计算机研究生的看法-转贴
查看>>
DOM
查看>>
成绩评分器制作(练习)
查看>>
【求和】题解
查看>>
跟我一起学习ASP.NET 4.5 MVC4.0(二)
查看>>
DMN 决策模型和标记 Decision Model And Notation
查看>>
时间戳转换
查看>>
[51Nod 1301] 集合异或和 (dp)
查看>>
洛谷 P1137 旅行计划
查看>>
ajax 提交file文件到后台的两种方法 ajaxSubmit&FormData
查看>>
Android PullToRefresh (ListView GridView 下拉刷新) 使用详解
查看>>
性能优化个人认识小结
查看>>