一个多月没更博客了。。(期间明白了自己有多傻逼。

  这种问题大概就倒着做...

  f[i][j]:表示考虑剩下的硬币i..n,且之前的人取了j个时,先手最多拿到的钱数。aft[i]:表示硬币i..n的总钱数。

  f[i][j]=aft[i]-min{ f[k][k-i] },(i<k<=min(n,i+2*j))

  k随着j的增加而增加。不同的j只是k的范围不同而已。所以记录一波最小值就可以了。

  时间复杂度O(n²)

 1 #include<cstdio>
 2 #include<iostream>
 3 #include<cstring>
 4 #include<algorithm>
 5 using namespace std;
 6 const int maxn=2023;
 7 int f[maxn][maxn];
 8 int aft[maxn],a[maxn];
 9 int i,j,k,n,m;
10
11 int ra;char rx;
12 inline int read(){
13     rx=getchar(),ra=0;
14     while((rx<'0'||rx>'9'))rx=getchar();
15     while(rx>='0'&&rx<='9')ra*=10,ra+=rx-48,rx=getchar();return ra;
16 }
17 inline int min(int a,int b){return a<b?a:b;}
18 int main(){
19     n=read();
20     for(i=1;i<=n;i++)a[i]=read();
21     for(i=n;i;i--)aft[i]=aft[i+1]+a[i];
22     for(i=n;i;i--)for(j=(n-i+2)>>1;j<=n;j++)f[i][j]=aft[i];int mn;
23     for(i=n-1;i;i--){
24         mn=1e9,k=i;
25         for(j=1;j<=i;j++){
26             if(k<=n)k++,mn=min(mn,f[k][k-i]);
27             if(k<=n)k++,mn=min(mn,f[k][k-i]);
28             f[i][j]=aft[i]-mn;
29             if(k>n)break;
30         }
31         for(j++;j<=i;j++)f[i][j]=aft[i]-mn;
32     }
33     printf("%d\n",f[1][1]);
34 }

View Code

转载于:https://www.cnblogs.com/czllgzmzl/p/5596236.html

[bzoj 2017] [Usaco2009 Nov]硬币游戏相关推荐

  1. [BZOJ2017][Usaco2009 Nov]硬币游戏

    Description 农夫约翰的奶牛喜欢玩硬币游戏,因此他发明了一种称为"Xoinc"的两人硬币游戏. 初始时,一个有N(5 <= N <= 2,000)枚硬币的堆栈 ...

  2. BZOJ 1411Vijos 1544 : [ZJOI2009]硬币游戏【递推,快速幂】

    1411: [ZJOI2009]硬币游戏 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 897  Solved: 394 [Submit][Stat ...

  3. bzoj:2018 [Usaco2009 Nov]农场技艺大赛

    Description Input 第1行:10个空格分开的整数: N, a, b, c, d, e, f, g, h, M Output 第1行:满足总重量最轻,且用度之和最大的N头奶牛的总体重模M ...

  4. 2017.10.13 硬币游戏 思考记录

    这个题用特征法可以比较好的找到思路 首先这个题有两个特征:1.正+反=反   反+正=反  正+正=正  反+反=正   应该能很快想到亦或 2.范围1e5  +  上限2^60   应该能很快想到倍 ...

  5. BZOJ 2019 [Usaco2009 Nov]找工作:spfa【最长路】【判正环】

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2019 题意: 奶牛们没钱了,正在找工作.农夫约翰知道后,希望奶牛们四处转转,碰碰运气. 而 ...

  6. 2017(秋)软工作业: (2)硬币游戏—— 代码分析与改进

    作业目的 Python 程序阅读理解 学习Python 编码风格指南中译版(Google SOC), 改进Python程序 如何设计游戏规则,使得慈善事业可持续. 地铁口放置硬币箱(初始值500硬币) ...

  7. BZOJ:4820: [Sdoi2017]硬币游戏BZOJ:1444: [Jsoi2009]有趣的游戏(高斯消元求概率)

    1444: [Jsoi2009]有趣的游戏 4820: [Sdoi2017]硬币游戏 这两道题都是关于不断随机生成字符后求出现给定字符串的概率的问题. 第一题数据范围较小,将串建成AC自动机以后,以A ...

  8. 【BZOJ4820】[SDOI2017]硬币游戏(高斯消元)

    [BZOJ4820][SDOI2017]硬币游戏(高斯消元) 题面 BZOJ 洛谷 题解 第一眼的感觉就是构\(AC\)自动机之后直接高斯消元算概率,这样子似乎就是\(BZOJ1444\)了.然而点数 ...

  9. BZOJ 1662: [Usaco2006 Nov]Round Numbers 圆环数(数位DP+恶心细节)

    BZOJ 1662: [Usaco2006 Nov]Round Numbers 圆环数 Time Limit: 5 Sec  Memory Limit: 64 MB Description 正如你所知 ...

最新文章

  1. 工资倒挂也刺激不了已是咸鱼的你
  2. duilib combo增加搜索栏_微信对话框上线搜一搜,搜索一步到位!
  3. (仿头条App项目)9.视频列表页面实现
  4. 《化工原理》基本知识点
  5. 用 Git 操作的数据库?这个项目火了!
  6. SIM800C Couldn't pair with xxx because of an incorrect PIN or passkey
  7. Hadoop(七)Hive基础
  8. git已经删除了远程分支,但本地环境仍能看到远程分支
  9. 跨区域报考计算机考试可以吗,考生注意!2020年医师资格机考跨题型不可以回看(附上机操作系统)...
  10. NPU 2015年陕西省程序设计竞赛网络预赛(正式赛)F题 和谐的比赛(递推 ||卡特兰数(转化成01字符串))...
  11. Android学习笔记27:网格视图GridView的使用
  12. 中国工业管理软件如何突围?
  13. mysql数据库证件脱敏_mysql对身份证号码进行脱敏处理
  14. DUBBO启动为啥不用web容器启动
  15. latex中表格、图片的排版
  16. 结对项目——进一步完善四则运算
  17. MySQL数据库的引擎
  18. matlab 积分 例子,[Matlab]使用arrayfun对矩阵表达式积分的例子
  19. 史上最易懂——一文详解线性回归算法的纯Python实现
  20. 关于Unity3D的PC游戏窗口化时的分辨率解决方案

热门文章

  1. [SecureCRT] 解决 securecrt failed to open the host key database file 的问题
  2. 使用Bochs调试Linux kernel 随笔 -- 准备
  3. remobject 簡介
  4. serve : 无法加载文件 C:\Users\wb\AppData\Roaming\npm\serve.ps1
  5. 有人说清华本科含金量最高,研究生的含金量就低了,这是为什么?
  6. 一个女人不收拾厨房,卫生间便池也不刷,为什么老公也不嫌弃?
  7. 一位年轻有为的企业家李先生
  8. 几个商业模式的运用手法
  9. 互联网的大厂就那么几家,所以很多员工跳槽后都是互相流动的
  10. 有人说赚钱靠项目,也有人说赚钱靠技术