P4643 [国家集训队]阿狸和桃子的游戏
这题看一眼就很不可做
考虑对于任意一个最终状态,对于一条边的贡献分成三种情况
如果此边连接的两点属于 $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 ;
}
P4643 [国家集训队]阿狸和桃子的游戏的更多相关文章
- 洛谷P4643 [国家集训队]阿狸和桃子的游戏(思维题+贪心)
思维题,好题 把每条边的边权平分到这条边的两个顶点上,之后就是个sb贪心了 正确性证明: 如果一条边的两个顶点被一个人选了,一整条边的贡献就凑齐了 如果分别被两个人选了,一作差就抵消了,相当于谁都没有 ...
- luogu4643 [国家集训队]阿狸和桃子的游戏
题目链接:洛谷 这道题乍一看非常的难,而且题目标题上的标签让人很害怕. 但其实这道题并不难写(只要想到了...emm) 因为我们只需要知道两个人得分之差,所以我们可以对条件进行变换. 我们将边权平分到 ...
- P4643-[国家集训队]阿狸和桃子的游戏【结论】
正题 题目链接:https://www.luogu.com.cn/problem/P4643 题目大意 给出\(n\)个点\(m\)条边的无向图,两个人轮流选择一个未被选择的点加入点集. 然后每个人的 ...
- 【BZOJ2563】阿狸和桃子的游戏(贪心)
[BZOJ2563]阿狸和桃子的游戏(贪心) 题面 BZOJ 题解 边权平均分给两个点就好了. #include<iostream> #include<cstdio> #inc ...
- 【bzoj2563】阿狸和桃子的游戏(贪心+构造)
题目传送门:bzoj2563 先膜拜一波PoPoQQQ的题解:BZOJ 2563 阿狸和桃子的游戏 贪心 其实我们可以这样看:把一条边的权值均分到两个端点,那么取到两个端点就能得到这条边的边权,如果只 ...
- BZOJ2563阿狸和桃子的游戏
2563: 阿狸和桃子的游戏 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 952 Solved: 682[Submit][Status][Discu ...
- Bzoj 2563: 阿狸和桃子的游戏 题解
2563: 阿狸和桃子的游戏 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 970 Solved: 695[Submit][Status][Discu ...
- Bzoj2563 阿狸和桃子的游戏
Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 701 Solved: 496 Description 阿狸和桃子正在玩一个游戏,游戏是在一个带权图G= ...
- BZOJ——2563: 阿狸和桃子的游戏
http://www.lydsy.com/JudgeOnline/problem.php?id=2563 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: ...
随机推荐
- 【leetcode】1106. Parsing A Boolean Expression
题目如下: Return the result of evaluating a given boolean expression, represented as a string. An expres ...
- LeetCode--064--最小路径和
给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小. 说明:每次只能向下或者向右移动一步. 示例: 输入:[ [1,3,1], [1,5,1], ...
- C# 实现二维数组的排序算法(代码)
class Order { /// <summary> /// 对二维数组排序 /// </summary> /// <param name="values&q ...
- luogu 2219[HAOI2007]修筑绿化带 单调队列
Code: #include<bits/stdc++.h> using namespace std; #define setIO(s) freopen(s".in",& ...
- 【bzoj2882】工艺
题目描述: 小敏和小燕是一对好朋友. 他们正在玩一种神奇的游戏,叫Minecraft. 他们现在要做一个由方块构成的长条工艺品.但是方块现在是乱的,而且由于机器的要求,他们只能做到把这个工艺品最左边的 ...
- Qt android 配置
http://www.cnblogs.com/ztzheng/p/3703716.html
- 4.16中Montage的一些变化
用4.16版本跟着网上的几篇Montage教程(分别是对应4.6和4.8版本)做,遇到各种各样的问题,经过各种搜索和分析,最终终于搞定了. 4.16版的Montage和之前有了不小的变化,总结如下: ...
- 学习日记16、easyui editor datagrid 动态绑定url
首先获取easyui当前的editor,然后看代码就可以了 var Index = $("#draw").datagrid("appendRow", { Ext ...
- A* 算法求第 K 短路
一种具有 \(f(n)=g(n)+h(n)\) 策略的启发式算法能成为 A* 算法的充分条件是: 搜索树上存在着从起始点到终了点的最优路径. 问题域是有限的. 所有结点的子结点的搜索代价值 \(> ...
- 服务器上安装搭建node环境
一.版本 : node v4.4.3 npm v2.15.1 pm2 v1.1.3 express v4.13.4 二.node安装与环境配置 新建node安装目录,与node项目目录 ...