传送门

这题看一眼就很不可做

考虑对于任意一个最终状态,对于一条边的贡献分成三种情况

如果此边连接的两点属于 $A$,那么对 $A$ 的贡献就是边权 $w$,即对答案的贡献为 $+w$

如果两点都属于 $B$,对 $B$ 的贡献就是边权 $w$,对答案的贡献为 $-w$

如果两点属于两人,那么对答案的贡献为 $0$

考虑固定所有点的贡献,发现如果把点权加上所有与它相邻边的边权除二

那么如果此边两点都是同一个人则对答案的贡献也还是 $+-w$

如果两点属于不同一个人,那么边的价值恰好抵消,对答案的贡献为 $0$

所以如果把点权这样改变,对于任意最终状态,每个点的贡献在一开始就被固定了

那么我们可以直接把点权变一下,然后模拟从大到小轮流选就好了

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
typedef long long ll;
inline int read()
{
int x=,f=; char ch=getchar();
while(ch<''||ch>'') { if(ch=='-') f=-; ch=getchar(); }
while(ch>=''&&ch<='') { x=(x<<)+(x<<)+(ch^); ch=getchar(); }
return x*f;
}
const int N=1e5+;
int n,m,v[N];
ll ans;
int main()
{
n=read(),m=read(); int a,b,c;
for(int i=;i<=n;i++) v[i]=read()*;
for(int i=;i<=m;i++)
{
a=read(),b=read(),c=read();
v[a]+=c; v[b]+=c;
}
sort(v+,v+n+);
for(int i=;i<=n;i++)
ans+=(i& ? - : )*v[i];
printf("%lld\n",ans/);
return ;
}

最新文章

  1. 最近做了了解java基础的一些题,整理自己用到的一些函数和了解的一些名词
  2. windows7 下 apache2.4 和 php5.5 及 mysql5.6 的安装与配置
  3. Select into 的特点
  4. ORACLE判别字段是否包含中文
  5. LeetCode Design Hit Counter
  6. cocos2d-x 观察者设计模式
  7. Chrome Apps將是Google送給微軟的特洛伊木馬?
  8. Apache2.2+php5.4在windows上配置实例
  9. 手游:cocos2d-x3.0 移植 wp8 开发 各种 “蛋疼”问题的汇总
  10. requirejs学习之-- 初始化(一)
  11. 用JavaScript 来将数字转换成字符。
  12. WIFI KILL神器
  13. BUAA-OO-第一单元总结
  14. python发送smtp 邮件 图片
  15. HDU-6033 Add More Zero
  16. WDA-2-事件执行先后
  17. LeetCode: Minimum Depth of Binary Tree 解题报告
  18. 云计算大会有感—MapReduce和UDF
  19. js 用简单案例举模态对话框弹出
  20. app开发团队人员构成怎么分配?国内著名的app开发团队有哪些

热门文章

  1. .Net 网站配置文件 webconfig 配置。 字体图标+视频播放 以及 文件上传
  2. Delphi 2010 secondsBetween Bug
  3. React Native 中 static的navigationOptions中的点击事件不能用this
  4. 跳转控制语句continue
  5. BZOJ 4923: [Lydsy1706月赛]K小值查询 Splay + 思维
  6. linux 阿里云oss命令ossutil64 同步文件
  7. pandas中的describe方法
  8. (26)Python获取某个文件存放的相对路径(更改任意目录下保持不变)
  9. 如何在Ecplise调试之后恢复原来的界面
  10. Java数据结构与算法(4):二叉查找树