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】阿狸和桃子的游戏 脑洞相关推荐

  1. bzoj2563阿狸和桃子的游戏

    bzoj2563阿狸和桃子的游戏 题意: 一个n(偶数)点图,节点权值为w(v),边权为c(e).两人轮流将图中的顶点染色,已经被染过色的点不能再染了,而且每一轮都必须给一个且仅一个顶点染色.染完后每 ...

  2. [bzoj2563] 阿狸和桃子的游戏 贪心

    2563: 阿狸和桃子的游戏 Time Limit: 3 Sec Memory Limit: 128 MB Submit: 814 Solved: 585 [Submit][Status][Discu ...

  3. [bzoj2563]阿狸和桃子的游戏

    2563: 阿狸和桃子的游戏 Time Limit: 3 Sec Memory Limit: 128 MB Submit: 518 Solved: 369 [Submit][Status][Discu ...

  4. BZOJ2563 阿狸和桃子的游戏

    最小生成树的变形--将边权赋予到点权(当然还有一种是将点权赋到边权) 显然将边权分一半给旁边的点,然后最小生成树就可以了. 因为如果两个人分别把这个边两边的点选走了,他们相当于谁都没有拿到这个边的边权 ...

  5. 【BZOJ 2563】 阿狸和桃子的游戏 脑洞+贪心

    一个不错的题目.因为是求两人得分的差值,所以我们将边权对半分,分别加在所连接的两点上,这样如果两边是不同的人拿的话,相减就等于没有拿,而如果是相同的人拿,就相当于拿全了,但是为了避免浮点数,所以采用点 ...

  6. [BZOJ]2563: 阿狸和桃子的游戏

    题解:神贪心.......我们考虑对于每条边的选择 假设某方对于当前这条边的端点都不选择  那么其获得-v的价值 假设某方对于当前这条边的端点只选择一个   那么其获得0的价值 假设某方对于当前这条边 ...

  7. BZOJ 2563: 阿狸和桃子的游戏

    2563: 阿狸和桃子的游戏 Time Limit: 3 Sec  Memory Limit: 128 MB Submit: 1161  Solved: 810 [Submit][Status][Di ...

  8. 贪心 阿狸和桃子的游戏

    问题 E: 阿狸和桃子的游戏 时间限制: 1 Sec 内存限制: 128 MB 题目描述 阿狸和桃子正在玩一个游戏,游戏是在一个带权图G=(V, E)上进行的,设节点权值为w(v),边权为c(e).游 ...

  9. Bzoj 2563: 阿狸和桃子的游戏 题解

    2563: 阿狸和桃子的游戏 Time Limit: 3 Sec  Memory Limit: 128 MB Submit: 970  Solved: 695 [Submit][Status][Dis ...

最新文章

  1. 基础的互联网连接词汇—Vecloud微云
  2. 程序员面试题精选100题(37)-寻找丑数[算法]
  3. oracle 11g r2配置文件,Oracle 11g R2 常用配置与日志的文件位置
  4. 面试官:new一个对象的过程中发生了什么
  5. java虚拟机的生命周期_深入理解Java虚拟机——JVM的生命周期
  6. mysql安装连接测试c_Ubuntu 12.04下安装mysql并用C程序测试连接
  7. WinXP的EFS加密文件如何解密?
  8. php socketconnect连接失败_PHP设计模式之模板方法模式
  9. linux grep命令参数及用法详解---linux管道命令grep
  10. TF2.0—tf.keras.layers.Activation
  11. Ubuntu 18.04 开机开启小键盘数字键numlock灯
  12. Traceback (most recent call last):IndexError: list assignment index out of range
  13. 最新四川大学软件工程课程期末官方复习知识点提纲
  14. 刚装修的房子多久能住?集成墙面真的好吗?
  15. uni-app -- 小程序分享遇到的问题
  16. msc.marc的Python开发,MscMarc,python,2
  17. Linux安装mysql数据库
  18. Android传感器Motion Sensor开发实验
  19. XGBoost之类别特征的处理
  20. RBCM-PDA-CUR@PLGA红细胞膜包裹聚多巴胺涂覆PLGA/细胞膜包覆纳米拓扑结构阵列

热门文章

  1. 选择性搜索(selective search)
  2. Netty教程04:Netty知识点
  3. 全国计算机技术与软件专业技术资格(水平)考试-2023 年上半年 软件设计师 上午试卷(答案对照)
  4. 唯愿山城无恙-烟火寻常--爱摸鱼的美工(五)
  5. js传递event参数
  6. 超详细!ArrayList源码图文解析
  7. 关于公钥与私钥的一点看法
  8. java: 找不到符号 符号: 变量 log
  9. 大量北美散户打算把补助支票投入股市,80%年轻人开始认可金融交易
  10. 使用mitmweb抓包教程