bzoj 2091: [Poi2010]The Minima Game 动态规划
来源:互联网 发布:淘宝活动报名匠人头像 编辑:程序博客网 时间:2024/05/16 01:13
题意
给出N个正整数,AB两个人轮流取数,A先取。每次可以取任意多个数,直到N个数都被取走。
每次获得的得分为取的数中的最小值,A和B的策略都是尽可能使得自己的得分减去对手的得分更大。
在这样的情况下,最终A的得分减去B的得分为多少。
N <= 1,000,000
分析
我们把所有数从小到大排好序后,很显然每次都是取最后面连续的一段。
我们不难发现从后往前推的话不是很好转移,那么就考虑从前往后转移。
设f[i]表示前i个数作为一组游戏的话先手-后手的最大值。
枚举第一次选哪个数,那么
记录一个最大值即可。
代码
#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>using namespace std;typedef long long LL;const int N=1000005;int n,a[N];LL f[N];int main(){ scanf("%d",&n); for (int i=1;i<=n;i++) scanf("%d",&a[i]); sort(a+1,a+n+1); LL mx=a[1]; for (int i=1;i<=n;i++) { f[i]=mx;mx=max(mx,a[i+1]-f[i]); } printf("%lld",f[n]); return 0;}
0 0
- BZOJ 2091 Poi2010 The Minima Game 动态规划
- bzoj 2091: [Poi2010]The Minima Game 动态规划
- BZOJ 2091 [Poi2010]The Minima Game
- 2091: [Poi2010]The Minima Game
- BZOJ P2091[Poi2010]The Minima Game
- 【POI2010】【BZOJ2091】The Minima Game
- 【bzoj2091】[Poi2010]The Minima Game
- BZOJ2091[Poi2010] The Minima Game
- BZOJ2091: [Poi2010]The Minima Game
- BZOJ2091: [Poi2010]The Minima Game
- BZOJ2091: [Poi2010]The Minima Game
- 【bzoj2091】 [Poi2010]The Minima Game
- 【bzoj2091】【Poi2010】【The Minima Game】【dp】
- BZOJ2091——[Poi2010]The Minima Game
- bzoj2091[Poi2010]The Minima Game DP
- bzoj2091[Poi2010]The Minima Game DP
- USACO2010 December Treasure Chest & POI2010 The Minima Game
- bzoj 2090: [Poi2010]Monotonicity 2 动态规划+线段树
- 动态内存开辟malloc,calloc,realloc简述
- mybatis中使用大于号或小于号报错
- Docker学习(四)命令
- 免费的天气接口(满足你的大部分需求)
- Mybatis中Mapper映射文件详解
- bzoj 2091: [Poi2010]The Minima Game 动态规划
- Java泛型--学习笔记
- 树莓派 系统的 启动与安装
- Java中的面试题 [5] --- 数据库知识、MySQL、Oracle、sql调优、sql语句设计等
- 申请苹果企业开发者账号过程之记录
- JsUnit工具应用
- 真机调试10.3.1
- spring cloud eureka 参数配置
- String s=null和String s=""和String s 的区别