luogu4643 [国家集训队]阿狸和桃子的游戏
题目链接:洛谷
这道题乍一看非常的难,而且题目标题上的标签让人很害怕。
但其实这道题并不难写(只要想到了。。。emm)
因为我们只需要知道两个人得分之差,所以我们可以对条件进行变换。
我们将边权平分到边两端的节点,取到了一个点也相当于取到了点权加上一半的边权,则发现对于边$(u,v)$有以下四种情况:
1.桃子取到了$u$和$v$,这时这两点的贡献为$w(u)+w(v)+c(u,v)/2+c(u,v)/2=w(u)+w(v)+c(u,v)$,与原来相同。
2.桃子取到了$u$,阿狸取到了$v$,贡献为$w(u)-w(v)+c(u,v)/2-c(u,v)/2=w(u)-w(v)$,与原来相同。
对于另外两种情况是一样的。
所以对于新的点权,我们每次贪心地取当前能取的最大的点权,这个就是答案了。
为了避免出现小数,我们可以对点权$*2$,最后把答案$/2$
#include<bits/stdc++.h>
#define Rint register int
using namespace std;
const int N = ;
int n, m, a[N], ans;
int main(){
scanf("%d%d", &n, &m);
for(Rint i = ;i <= n;i ++){
scanf("%d", a + i);
a[i] <<= ;
}
for(Rint i = ;i <= m;i ++){
int x, y, z;
scanf("%d%d%d", &x, &y, &z);
a[x] += z; a[y] += z;
}
sort(a + , a + n + );
for(Rint i = ;i < n;i += )
ans += a[i + ] - a[i];
printf("%d\n", ans >> );
}
Luogu4643
luogu4643 [国家集训队]阿狸和桃子的游戏的更多相关文章
- 洛谷P4643 [国家集训队]阿狸和桃子的游戏(思维题+贪心)
思维题,好题 把每条边的边权平分到这条边的两个顶点上,之后就是个sb贪心了 正确性证明: 如果一条边的两个顶点被一个人选了,一整条边的贡献就凑齐了 如果分别被两个人选了,一作差就抵消了,相当于谁都没有 ...
- P4643 [国家集训队]阿狸和桃子的游戏
传送门 这题看一眼就很不可做 考虑对于任意一个最终状态,对于一条边的贡献分成三种情况 如果此边连接的两点属于 $A$,那么对 $A$ 的贡献就是边权 $w$,即对答案的贡献为 $+w$ 如果两点都属于 ...
- 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: ...
随机推荐
- 动态代理和CGlib
静态代理:静态代理的类也需要实现接口interface1,还要创建一个实现接口interface1的其他类class1,并且在静态代理类重写的方法中调用class1重写的方法.操作太多冗余.不好 动态 ...
- 【原创】Java基础之常用JVM工具
查看当前所有java进程 # jps 查看某个进程的堆内存占用情况 # jmap -heap $pid 查看某个进程的堆内存中对象分布情况 # jmap -histo $pid 将某个进程的堆内存导出 ...
- LinkedList阅读
package java.util; import java.util.function.Consumer; public class LinkedList<E> extends Abst ...
- 解决Bootstrap 标签页(Tab)插件切换echarts不显示问题
1.参考连接:https://blog.csdn.net/qq_24313955/article/details/78363981 问题描述:在echarts跟bootstrap选项卡整合的时候,默认 ...
- AWS S3 递归上传文件和递归下载文件, 以及S3之间拷贝文件夹
1. 递归上传文件: aws s3 cp 本地文件夹 s3://bucket-name -- recursive --region us-east-1 2. 递归下载S3上的文件夹: cd 本地下载 ...
- 导入Maven 工程pom.xml首行报错解决方法
1.利用IDE导入一个Maven工程,但是pom.xml文件首行报错,发现是maven版本需要升级 2.在pom.xml文件 增加配置 <properties> <maven-jar ...
- LOJ #6303. 水题 (约数 质因数)
#6303. 水题 内存限制 10 MiB 时间限制:1000 ms 标准输入输出 题目描述 给定正整数 n,kn, kn,k,已知非负整数 xxx 满足 n!modkx=0,求 xmaxx_{max ...
- python获取文件所在目录
1.执行的python程序获取自己文件所在目录 import os,sys os.chdir(sys.path[0]); dir_name = os.path.abspath(os.path.join ...
- Kotlin从入门到放弃
1.eclipse kotlin安装: http://blog.csdn.net/u014134488/article/details/50684922 2.Android Studio kotlin ...
- js文档就绪函数
$(function(){ //执行的内容 }): $().ready(function(){ //执行的内容 }); $(document).ready(function(){ //执行的内容 }) ...