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

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

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

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

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

  3. BZOJ2563 阿狸和桃子的游戏

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

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

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

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

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

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

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

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

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

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

    BZOJ 2563 : 阿狸和桃子的游戏 (机巧的贪心) 题目传送门 [问题描述] 大概就是,给你一个N个点的图(保证N是偶数).点和边都有权值. 有两个绝顶聪明的人,一人轮流选一次点(每个点仅可被选 ...

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

    阿狸和桃子的游戏题解 每一道代码简单的黑题都有着诡异的思想,真不知道出题者怎么想的. 而这道题的重点在于把边权转换为点权, 此题的方式是将边权w平均分给被连接的两点u和v. 若u和v都被一人选择,则他 ...

最新文章

  1. 调用其他脚本上方法的方法
  2. pyhon制作word、excel、ppt转pdf转换器大作战
  3. python子进程 内存,python中的子进程内存使用情况
  4. C语言中 if 和 else if 的区别
  5. Kafka Manager 编译 + 部署运行
  6. 有关Accordion组件的研究——Silverlight学习笔记[27]
  7. 飞秋的不定长度字符串处理方法
  8. ar android app,RakugakiAR安卓版
  9. android给数组添加新元素_「数组赋值」什么是数组、如何创建数组、数组赋值、数组增加一个新元素 - seo实验室...
  10. python线程卡死问题解决
  11. ZF环境要求及如何配置
  12. Mac下使用gitHub
  13. servlet的配置(映射)以及生命周期
  14. Linux修改服务器密码
  15. oracle数据库查表函数,Oracle数据库的常用函数列表快速查1
  16. 统信软件启用全新LOGO,迎接中国操作系统大时代
  17. Qt-qmake install相关
  18. 数字集成电路面试常见问题_关于空间级集成电路的常见误解
  19. 那些年我用过的JSON格式化工具
  20. “第四产业”升级,中软国际“蝶变”

热门文章

  1. 令人不寒而栗的黄蓉(转)
  2. 【路径规划】基于蚁群算法的多配送中心车辆路径优化方法matlab代码
  3. 医院pacs系统服务器配置,浪潮为千佛山医院PACS系统开“药方”
  4. 案例剖析:关于优化外贸网店提高支付率
  5. 轻松解决夜神逍遥模拟器模拟器等模拟器无法连接问题
  6. 自己忙碌十年,发现空空的,该填满了
  7. 超详细的阿里云服务器购买及远程连接开机(Win系统)
  8. LeetCode 860[Python]. 柠檬水找零 在柠檬水摊上,每一杯柠檬水的售价为 5 美元。 顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。
  9. 遥感原始图像计算机格式,卫星遥感影像数据是什么样格式的?
  10. 一、EulerOS 操作系统入门