bzoj1783
博弈论+dp
从未做过博弈论。。。
思路是这样的,我们倒着考虑,分别设f[i]表示先手选了a[i]后能取得的最大值,g[i]表示先手取了a[i]后后手能获得的最大值
g[i]=f[mx],f[mx]是[i+1,n]中最大的f,因为现在先手选了a[i],那么后手就变成先手了,自然选最大能获得的收益,f[i]=a[i]+g[mx],f[i]钦定了选a[i],然后先手变成了后手,后手变成了先手,那么现在的先手肯定会选f[mx],因为肯定要选最大的,那么现在的后手自然就等于g[mx]了,更新mx当f[i]>=f[mx],因为我们希望f[mx]最大,并且因为每个人同时希望另外一个人拿的更多,所以尽量选靠前的,这样的g[mx]更大
博弈论主要是不能决定别人的策略,所以不能直接贪心,这样两个人都不够聪明,这道题就是用两个状态保证两个人都足够聪明
#include<bits/stdc++.h>
using namespace std;
const int N = 7e5 + ;
typedef long long ll;
int n, mx;
ll a[N], f[N], g[N];
int main()
{
scanf("%d", &n);
for(int i = ; i <= n; ++i) scanf("%lld", &a[i]);
mx = n + ;
for(int i = n; i; --i)
{
g[i] = f[mx];
f[i] = a[i] + g[mx];
if(f[i] >= f[mx]) mx = i;
}
printf("%lld %lld\n", f[mx], g[mx]);
return ;
}
bzoj1783的更多相关文章
- [bzoj1783] [Usaco2010 Jan]Taking Turns
题意: 一排数,两个人轮流取数,保证取的位置递增,每个人要使自己取的数的和尽量大,求两个人都在最优策略下取的和各是多少. 注:双方都知道对方也是按照最优策略取的... 傻逼推了半天dp......然后 ...
- 【刷题记录】BZOJ-USACO
接下来要滚去bzoj刷usaco的题目辣=v=在博客记录一下刷题情况,以及存一存代码咯.加油! 1.[bzoj1597][Usaco2008 Mar]土地购买 #include<cstdio&g ...
- bzoj Usaco补完计划(优先级 Gold>Silver>资格赛)
听说KPM初二暑假就补完了啊%%% 先刷Gold再刷Silver(因为目测没那么多时间刷Silver,方便以后TJ2333(雾 按AC数降序刷 ---------------------------- ...
随机推荐
- Google代码风格指南
官网:https://github.com/google/styleguide 中文版:https://github.com/zh-google-styleguide/zh-google-styleg ...
- 【grpc】项目启动缺少grpc架包引用
项目启动缺少grpc架包引用 导致 项目无法启动 解决方法: 在命令行执行 ./gradlew generateProto 下载完成之后 刷新gradle或者maven 再重启项目
- 在智能手机上跟踪ADS-B系统的飞机航线信息
飞机飞行的中断可能会给航空公司造成数十亿美员的损失,但即便如此大多数现代商业航班仍旧依赖于存有严重安全问题的空中交通管制系统.到2020年,这些系统将会被升级为一个被称之为NextGen的系统,该系统 ...
- 自动检查出修改的代码 shell 做升级包 供观摩
#!/bin/bash # 检测出 appsReleass 项目代码更新 # oath 冉幕飞 #验证 基础参数 $1 day=$1 #多少天内 zipfile=$2 #包名称 if [ " ...
- IE 扩展调用主窗体中的函数
IE 扩展调用主窗体中的函数 在函数名前加上 parentWindow 就可以.如: <script> var doc = external.menuArguments.docum ...
- 这个捕鱼游戏制作的真心不错,原创音乐,AV动作,让人流连忘返啊呵呵
女生看完这篇文章后果断地命令男朋友打开电脑和手机 2014-10-10 茶娱饭后 本人纯屌丝宅男一名.专注游戏十年有余,玩过无数大大小小的游戏,对捕鱼游戏情有独钟.我不想说在捕鱼游戏方面有多专业 ...
- HDU 1060 Leftmost Digit (数学/大数)
Leftmost Digit Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)To ...
- iOS--判断字符串NSString中数字、中文、大小写英文
iOS--判断字符串NSString中数字.中文.大小写英文 <iframe id="iframeu2051914_0" src="http://pos.bai ...
- 基于PHP函数的alert弹框
可以设置弹出信息,跳转地址,跳转的时间,跳转的信息标题提示: 手机端加上<meta name='viewport' content='width=device-width, initial-sc ...
- object equal
package equals; public class EqualsTest { public static void main(String[] args) { Employee alice1 = ...