【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 4
6
4
-1
-2
1 2 1
2 3 6
3 4 3
1 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
题解
讲一条边的权值平分在两个端点上,因为是作差,所以不会有影响(自行脑补)。于是贪心轮流取最大值即可。
代码
#include<bits/stdc++.h>
#define ll long long
#define inf 10000005
using namespace std;
inline int read()
{int x=0,f=1;char ch=getchar();while (ch<'0'||ch>'9'){if (ch=='-') f=-1;ch=getchar();}while (ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;
}
double a[10005],ans;
int n,m,x,y,z;
bool cmp(double a,double b)
{return a<b;
}
int main()
{n=read();m=read();for (int i=1;i<=n;i++)a[i]=read();for (int i=1;i<=m;i++){int x=read(),y=read(),z=read();a[x]+=(double)z/2;a[y]+=(double)z/2;}sort(a+1,a+n+1,cmp);for (int i=n;i;i--){if ((n-i)%2==0) ans+=a[i];else ans-=a[i];}printf("%.0lf",ans);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: 阿狸和桃子的游戏
题解:神贪心.......我们考虑对于每条边的选择 假设某方对于当前这条边的端点都不选择 那么其获得-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 ...
- BZOJ 2563 : 阿狸和桃子的游戏
BZOJ 2563 : 阿狸和桃子的游戏 (机巧的贪心) 题目传送门 [问题描述] 大概就是,给你一个N个点的图(保证N是偶数).点和边都有权值. 有两个绝顶聪明的人,一人轮流选一次点(每个点仅可被选 ...
- 阿狸和桃子的游戏题解
阿狸和桃子的游戏题解 每一道代码简单的黑题都有着诡异的思想,真不知道出题者怎么想的. 而这道题的重点在于把边权转换为点权, 此题的方式是将边权w平均分给被连接的两点u和v. 若u和v都被一人选择,则他 ...
最新文章
- html js脚本限制 正则,[js]用JAVASCRIPT正则表达式限制文本字节数的代码
- python怎么读取文件-python怎么读取文件内容
- php代码文字中怎么换行符,如何在imagestring(php中的文本到图像)中添加换行符(br)...
- 深度学习分割json_to_data报错Too many dimensions: 3 > 2
- 发挥游戏人工智能的最大价值:线程化
- layui循环数据并渲染_从简单到复杂三维图形渲染管线
- 干货 | 数据分析的 7 个关键步骤是什么?
- Mysql的安装和配置
- MIT黑科技:无需视觉输入,立体声音频+摄像机元数据即可实现移动车辆定位
- python工资高还是java-python为什么叫爬虫 python工资高还是java的高
- OEMAddressTable介绍(转)
- Pymol教程--安装
- php做前端动态效果,通过CSS Animation进行前端动效
- Linux使用scp在服务器之间远程传输复制文件和文件夹
- OpenCV:Mat创建全白图、全黑图、指定像素值的图
- module.exports 和 exports的区别
- “基尔霍夫电流定律”电子教案
- 家乐福联姻微库玩逆袭,移动营销你造吗?
- Hadoop 从入门到精通----leo学习编程不良人视频的笔记--part01
- 帮助中心在线制作工具推荐这4款,很不错哟!
热门文章
- dell服务器面板不显示,戴尔服务器控制提示面板没有安装怎么处理
- 成功解决data too long for column 'name' at row 1
- Fast Global Registration
- XCode使用googletest(包括googlemock)
- 某农业学校python(七)
- 阿里云数据库李飞飞:云计算推动数据库向云原生快速演进
- 第一代GCN: Spectral Networks and Locally Connected Networks on Graphs
- 数学定理【转自百度百科】
- gabor滤波 matlab,图像处理 – 使用matlab应用Gabor方程创建Gabor滤波器
- PMP第12章采购管理