OJ题号:洛谷3507

思路:

如果选了$k_i$,那么你的对手就可以选上所有$\geq{k_i}$的数。那么他其中获得的分数也一定$\geq{k_i}$。

如果你选了$k_i$以及所有$\geq{k_i}$的数,那么对手无论怎么选,所获得的分数都一定$<{k_i}$,无论如何都不会超过你。

因此,若要保证最优,如果选了$k_i$,同时一定要选上所有$\geq{k_i}$的数。

我们可以将这n个数从小到大排序。

设${k_0}\sim{k_i}$中,双方最大差为$f_i$。易得DP方程$f_i=max(k_j-f_{j-1})(0\leq{j}\le{i})$。

实现上也可以用$ans$维护$f$数组的前缀$max$。

 #include<cstdio>
#include<algorithm>
int main() {
int n;
scanf("%d",&n);
int k[n];
for(int i=;i<n;i++) scanf("%d",&k[i]);
std::sort(&k[],&k[n]);
int ans=;
for(int i=;i<n;i++) ans=std::max(ans,k[i]-ans);
printf("%d\n",ans);
return ;
}

[POI2010]GRA-The Minima Game的更多相关文章

  1. bzoj2091【Poi2010】The Minima Game

    直接dp就好了 每个人肯定会去选最大的,用dp[i]表示选了后i个点时先手-后手的最大值(因为从后往前扫才好转移啊 QwQ~) dp[i]=max(c[j]-dp[j-1]),(j<=i) 直接 ...

  2. luoguP3507 [POI2010]GRA 性质 + 动态规划

    题目大意: 给定\(n\)个正整数,\(a, b\)两个人轮流取,\(a\)先手 每次可以取任意多的数,直到取完,每次的得分为取的数中的最小值 \(a, b\)都会使自己的得分减去对手的得分更大,询问 ...

  3. BZOJ2091: [Poi2010]The Minima Game

    2091: [Poi2010]The Minima Game Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 243  Solved: 163[Subm ...

  4. bzoj2091: [Poi2010]The Minima Game DP

    2091: [Poi2010]The Minima Game DP 链接 https://www.lydsy.com/JudgeOnline/problem.php?id=2091 思路 这类问题好迷 ...

  5. 2091: [Poi2010]The Minima Game

    2091: [Poi2010]The Minima Game 链接 分析: 首先排序后,一定是选的连续的一段. f[i]表示前i个位置,先手-后手的最大得分. 那么考虑第i个位置是否选,如果选,先手选 ...

  6. [bzoj2091][Poi2010]The Minima Game_动态规划

    The Minima Game bzoj-2091 Poi-2010 题目大意:给出N个正整数,AB两个人轮流取数,A先取.每次可以取任意多个数,直到N个数都被取走.每次获得的得分为取的数中的最小值, ...

  7. 洛谷 P3507 [POI2010]GRA-The Minima Game

    P3507 [POI2010]GRA-The Minima Game 题目描述 Alice and Bob learned the minima game, which they like very ...

  8. 洛谷P3507 [POI2010]GRA-The Minima Game

    题目描述 Alice and Bob learned the minima game, which they like very much, recently. The rules of the ga ...

  9. P3507 [POI2010]GRA-The Minima Game

    题目描述 Alice and Bob learned the minima game, which they like very much, recently. The rules of the ga ...

  10. BZOJ 2091: [Poi2010]The Minima Game

    Description 每次可以任取数字,使用最优策略让差最大. Sol DP. 一开始我写了个单调队列贪心,然后狂WA不止... 正着做有后效性,因为前面的决策无法保证在后面是最优秀的,但如果倒这做 ...

随机推荐

  1. emmc基础技术8:操作模式2-device identification mode

    1.前言 eMMC总线操作包含: boot mode, device identification mode interrupt mode data transfer mode 本文主要描述devic ...

  2. python高级编程读书笔记(一)

    python高级编程读书笔记(一) python 高级编程读书笔记,记录一下基础和高级用法 python2和python3兼容处理 使用sys模块使程序python2和python3兼容 import ...

  3. 【转】深入浅出JMS(二)--ActiveMQ简单介绍以及安装

    现实的企业中,对于消息通信的应用一直都非常的火热,而且在J2EE的企业应用中扮演着特殊的角色,所以对于它研究是非常有必要的. 这篇博文介绍一款开源的JMS具体实现——ActiveMQ.ActiveMQ ...

  4. Linux清除文件内容的几种方法

    # 清空或删除大文件内容的五种方法: # 法一:通过重定向到 Null 来清空文件内容 $ >test.sh # 法二:使用 ‘true' 命令重定向来清空文件 $ true > test ...

  5. androidpn 推送系统

    (文中部分内容来自网络,如无意中侵犯了版权,请告之!) XMPP协议: XMPP : The Extensible Messaging andPresence Protocol. 中文全称:可扩展通讯 ...

  6. Android 工程中各种文件的介绍

    一:Android.mk     Android.mk 内部定义了一个或者多个源代码的模块,该文件的产生是和NDK相关的,NDK 是Android提供的一种工具,可以为编译mk文件内部的源代码提供依赖 ...

  7. springMVC源码分析--FlashMap和FlashMapManager重定向数据保存

    在上一篇博客springMVC源码分析--页面跳转RedirectView(三)中我们看到了在RedirectView跳转时会将跳转之前的请求中的参数保存到fFlashMap中,然后通过FlashMa ...

  8. 使用fidder进行接口测试

    官方下载地址 下载后一路next安装即可. get请求 get请求直接把需要携带的参数使用?跟在后面如:http://127.0.0.1:8000/api/get_event_list/?id=1 p ...

  9. Nginx教程/概述

    Nginx(发音同engine x)是一个异步框架的 Web服务器,也可以用作反向代理,负载平衡器 和 HTTP缓存.该软件由 Igor Sysoev 创建,并于2004年首次公开发布.同名公司成立于 ...

  10. Java_myeclipse添加DTD约束(框架xml只能提示功能)

    以struts2中的xml为例 struts-2.3.4-all\struts-2.3.4\src\core\src\main\resources