【bzoj2563】阿狸和桃子的游戏 脑洞
Description
阿狸和桃子正在玩一个游戏,游戏是在一个带权图G=(V, E)上进行的,设节点权值为w(v),边权为c(e)。游戏规则是这样的:
1. 阿狸和桃子轮流将图中的顶点染色,阿狸会将顶点染成红色,桃子会将顶点染成粉色。已经被染过色的点不能再染了,而且每一轮都必须给一个且仅一个顶点染色。
2. 为了保证公平性,节点的个数N为偶数。
3. 经过N/2轮游戏之后,两人都得到了一个顶点集合。对于顶点集合S,得分计算方式为
。
由于阿狸石头剪子布输给了桃子,所以桃子先染色。两人都想要使自己的分数比对方多,且多得越多越好。如果两人都是采用最优策略的,求最终桃子的分数减去阿狸的分数。
Input
输入第一行包含两个正整数N和M,分别表示图G的节点数和边数,保证N一定是偶数。
接下来N+M行。
前N行,每行一个整数w,其中第k行为节点k的权值。
后M行,每行三个用空格隔开的整数a b c,表示一条连接节点a和节点b的边,权值为c。
Output
输出仅包含一个整数,为桃子的得分减去阿狸的得分。
Sample Input
4 464-1-21 2 12 3 63 4 31 4 5
Sample Output
3
数据规模和约定
对于40%的数据,1 ≤ N ≤ 16。
对于100%的数据,1 ≤ N ≤ 10000,1 ≤ M ≤ 100000,-10000 ≤ w , c ≤ 10000。
HINT
Source
2012国家集训队Round 1 day2
脑洞题…
让求最优情况下,得分最小差值。
先不考虑点权。
因为让求的是差值,取的是点,所以可以这样思考:
边权先设为w。
因为一条边的两个端点如果在同一个人手中,那他则会得到w分,对答案的贡献为w分;若两点在两人手中,则对任意一人的贡献皆为0分,对答案贡献为0分。所以边权为w的边对它两个端点的贡献为:每个点w/2分。把这个贡献加到点权里。
然后再加上它原来的点权,然后就可以看出最优策略:优先取点权大的点。
为了避免浮点数,可以乘2。
sort一遍完了。
Orz小绿
代码:
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
using namespace std;int num[10000];int main()
{int n,m;scanf("%d%d",&n,&m);for(int i = 1;i <= n;i ++){scanf("%d",&num[i]);num[i] *= 2;}for(int i = 1;i <= m;i ++){int a,b,c;scanf("%d%d%d",&a,&b,&c);num[a] += c;num[b] += c;}sort(num + 1,num + 1 + n);int ans1 = 0,ans2 = 0;for(int i = 1;i <= n;i ++){if(i & 1) ans2 += num[i];else ans1 += num[i];}printf("%d",(ans1 - ans2) / 2);return 0;
}
【bzoj2563】阿狸和桃子的游戏 脑洞相关推荐
- bzoj2563阿狸和桃子的游戏
bzoj2563阿狸和桃子的游戏 题意: 一个n(偶数)点图,节点权值为w(v),边权为c(e).两人轮流将图中的顶点染色,已经被染过色的点不能再染了,而且每一轮都必须给一个且仅一个顶点染色.染完后每 ...
- [bzoj2563] 阿狸和桃子的游戏 贪心
2563: 阿狸和桃子的游戏 Time Limit: 3 Sec Memory Limit: 128 MB Submit: 814 Solved: 585 [Submit][Status][Discu ...
- [bzoj2563]阿狸和桃子的游戏
2563: 阿狸和桃子的游戏 Time Limit: 3 Sec Memory Limit: 128 MB Submit: 518 Solved: 369 [Submit][Status][Discu ...
- BZOJ2563 阿狸和桃子的游戏
最小生成树的变形--将边权赋予到点权(当然还有一种是将点权赋到边权) 显然将边权分一半给旁边的点,然后最小生成树就可以了. 因为如果两个人分别把这个边两边的点选走了,他们相当于谁都没有拿到这个边的边权 ...
- 【BZOJ 2563】 阿狸和桃子的游戏 脑洞+贪心
一个不错的题目.因为是求两人得分的差值,所以我们将边权对半分,分别加在所连接的两点上,这样如果两边是不同的人拿的话,相减就等于没有拿,而如果是相同的人拿,就相当于拿全了,但是为了避免浮点数,所以采用点 ...
- [BZOJ]2563: 阿狸和桃子的游戏
题解:神贪心.......我们考虑对于每条边的选择 假设某方对于当前这条边的端点都不选择 那么其获得-v的价值 假设某方对于当前这条边的端点只选择一个 那么其获得0的价值 假设某方对于当前这条边 ...
- BZOJ 2563: 阿狸和桃子的游戏
2563: 阿狸和桃子的游戏 Time Limit: 3 Sec Memory Limit: 128 MB Submit: 1161 Solved: 810 [Submit][Status][Di ...
- 贪心 阿狸和桃子的游戏
问题 E: 阿狸和桃子的游戏 时间限制: 1 Sec 内存限制: 128 MB 题目描述 阿狸和桃子正在玩一个游戏,游戏是在一个带权图G=(V, E)上进行的,设节点权值为w(v),边权为c(e).游 ...
- Bzoj 2563: 阿狸和桃子的游戏 题解
2563: 阿狸和桃子的游戏 Time Limit: 3 Sec Memory Limit: 128 MB Submit: 970 Solved: 695 [Submit][Status][Dis ...
最新文章
- 基础的互联网连接词汇—Vecloud微云
- 程序员面试题精选100题(37)-寻找丑数[算法]
- oracle 11g r2配置文件,Oracle 11g R2 常用配置与日志的文件位置
- 面试官:new一个对象的过程中发生了什么
- java虚拟机的生命周期_深入理解Java虚拟机——JVM的生命周期
- mysql安装连接测试c_Ubuntu 12.04下安装mysql并用C程序测试连接
- WinXP的EFS加密文件如何解密?
- php socketconnect连接失败_PHP设计模式之模板方法模式
- linux grep命令参数及用法详解---linux管道命令grep
- TF2.0—tf.keras.layers.Activation
- Ubuntu 18.04 开机开启小键盘数字键numlock灯
- Traceback (most recent call last):IndexError: list assignment index out of range
- 最新四川大学软件工程课程期末官方复习知识点提纲
- 刚装修的房子多久能住?集成墙面真的好吗?
- uni-app -- 小程序分享遇到的问题
- msc.marc的Python开发,MscMarc,python,2
- Linux安装mysql数据库
- Android传感器Motion Sensor开发实验
- XGBoost之类别特征的处理
- RBCM-PDA-CUR@PLGA红细胞膜包裹聚多巴胺涂覆PLGA/细胞膜包覆纳米拓扑结构阵列