bzoj2563阿狸和桃子的游戏
bzoj2563阿狸和桃子的游戏
题意:
一个n(偶数)点图,节点权值为w(v),边权为c(e)。两人轮流将图中的顶点染色,已经被染过色的点不能再染了,而且每一轮都必须给一个且仅一个顶点染色。染完后每个人的分数为染过的点权和以及两个端点都被染的边权和。如果两人都是采用最优策略的,求最终第一个人的分数减去第二个人的分数。n≤10000,边数≤100000
题解:
本弱只能引用神犇的题解
“
考虑先手选择每个点对答案的影响
一个点如果不选,本身对答案的贡献是-w,一个点如果选,本身对答案的贡献是w,一条边如果两个端点都不选,对答案的贡献是-c,如果两个端点中只选择一个,对答案的贡献是0,如果两个端点都选,对答案的贡献是c,那么我们先预先把所有的权值都在初始答案中减掉,然后就变成了:
一个点如果不选,本身对答案的贡献是0,一个点如果选,本身对答案的贡献是2*w,一条边如果两个端点都不选,对答案的贡献是0,如果两个端点中只选择一个,对答案的贡献是c,如果两个端点都选,对答案的贡献是2*c,那么令一个点的贡献值为本身点权的二倍+所有相连的边的边权,排个序两人轮流取最大即可。
”
代码:
1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 #define maxn 10010 5 #define inc(i,j,k) for(int i=j;i<=k;i++) 6 #define ll long long 7 using namespace std; 8 9 int n,m; ll w[maxn],ans1,ans2; 10 bool cmp(ll a,ll b){return a>b;} 11 inline int read(){ 12 char ch=getchar(); int f=1,x=0; 13 while(ch<'0'||ch>'9'){if(ch=='-')f=-1; ch=getchar();} while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar(); 14 return f*x; 15 } 16 int main(){ 17 n=read(); m=read(); inc(i,1,n)w[i]=(ll)read()<<1,ans2+=w[i]>>1; 18 inc(i,1,m){int a=read(),b=read(); ll c=(ll)read(); ans2+=c; w[a]+=c; w[b]+=c;} sort(w+1,w+n+1,cmp); 19 inc(i,1,n){if(i&1)ans1+=w[i];} 20 printf("%lld",ans1-ans2); return 0; 21 }
20160623
转载于:https://www.cnblogs.com/YuanZiming/p/5701129.html
bzoj2563阿狸和桃子的游戏相关推荐
- [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都被一人选择,则他 ...
最新文章
- 调用其他脚本上方法的方法
- pyhon制作word、excel、ppt转pdf转换器大作战
- python子进程 内存,python中的子进程内存使用情况
- C语言中 if 和 else if 的区别
- Kafka Manager 编译 + 部署运行
- 有关Accordion组件的研究——Silverlight学习笔记[27]
- 飞秋的不定长度字符串处理方法
- ar android app,RakugakiAR安卓版
- android给数组添加新元素_「数组赋值」什么是数组、如何创建数组、数组赋值、数组增加一个新元素 - seo实验室...
- python线程卡死问题解决
- ZF环境要求及如何配置
- Mac下使用gitHub
- servlet的配置(映射)以及生命周期
- Linux修改服务器密码
- oracle数据库查表函数,Oracle数据库的常用函数列表快速查1
- 统信软件启用全新LOGO,迎接中国操作系统大时代
- Qt-qmake install相关
- 数字集成电路面试常见问题_关于空间级集成电路的常见误解
- 那些年我用过的JSON格式化工具
- “第四产业”升级,中软国际“蝶变”
热门文章
- 令人不寒而栗的黄蓉(转)
- 【路径规划】基于蚁群算法的多配送中心车辆路径优化方法matlab代码
- 医院pacs系统服务器配置,浪潮为千佛山医院PACS系统开“药方”
- 案例剖析:关于优化外贸网店提高支付率
- 轻松解决夜神逍遥模拟器模拟器等模拟器无法连接问题
- 自己忙碌十年,发现空空的,该填满了
- 超详细的阿里云服务器购买及远程连接开机(Win系统)
- LeetCode 860[Python]. 柠檬水找零 在柠檬水摊上,每一杯柠檬水的售价为 5 美元。 顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。
- 遥感原始图像计算机格式,卫星遥感影像数据是什么样格式的?
- 一、EulerOS 操作系统入门