题目

首先贪心是行不通的,考试的时候打了贪心,挂了......

举个反例:

10 2

3 4

贪心枚举答案为4,但若高桥先选3,最大值为6。

其实考试的时候想到了dp,但是不会打 悲

因为青木也是聪明人,所以我们设f[n]表示n个石头时能取的最大值。那么状态转移方程就出来了:

\[f[i]=max(i-f[i-a[j]])
\]

意思是f[i]=总个数i-第一次去a[j]个,剩下i-a[j]个石头的最大取走数(因为青木也是聪明人)

代码

#include<cstdio>
#include<iostream>
using namespace std;
int n,k,a[105],f[10005];
int main(){
scanf("%d%d",&n,&k);
for(int i=1;i<=k;i++) scanf("%d",a+i);
for(int i=1;i<=n;i++) for(int j=1;j<=k;j++) if(a[j]>i) break;else f[i]=max(f[i],i-f[i-a[j]]);
printf("%d",f[n]);
}

随机推荐

  1. 【Vue】10 Vue-Cli 项目创建

    简单的Demo案例并不需要Vue-Cli,因为一个页面之内可以总揽 但是真实的项目开发,考虑代码结构,目录结构,部署,热部署,单元测试... 代码量呈几何倍数增长,而且缺少轮子就写起来很痛苦 所以必须 ...

  2. 国产首款IDE环境:数字广东公司联合麒麟软件打造的国内首款适配国产操作系统、蜘蛛创新的集成开发环境CEC-IDE正式亮相

    参考: https://www.youtube.com/watch?v=fOpBEWZVKU0 在中国it历史上继"木兰编程语言(实际上套壳Python),红旗操作系统(实际上套壳Chrom ...

  3. 编程语言mojo报错:error: cannot call function that may raise in a context that cannot raise

    代码: from python import Python fn main(): # fn main() raises: # This is equivalent to Python's `impor ...

  4. conda中安装GCC/G++

    参考: https://www.5axxw.com/questions/content/h0e4te ========================================== 一般在lin ...

  5. 强化学习算法如何将GPU利用率提高到100%——在线强化学习如何将GPU利用率提升至100%

    一直有个疑问,那就是"强化学习算法如何将GPU利用率提高到100%",在一些论坛中也有人会提出这样的问题,但是一直也没有人比较正面的回答过这个问题,为此正好自己又想到了这么一个问题 ...

  6. MindSpore社区的小礼物

    前段时间在gitee上给MindSpore提过几个问题,后来一直没有回复,前几天得到了回复又通过网络视频聊了聊自己认为该开源项目还有哪些不足的地方,最后获赠了个小书包,对这个小礼物还是蛮喜欢的,下面给 ...

  7. C# Cefsharp 设置代理方法

    前提条件 为了实现在cefsharp里面设置代理,首先在创建一个ChromiumWebBrowser的时候,检查是否使用了以下代码 settings.CefCommandLineArgs.Add(&q ...

  8. XXL-JOB系统化图文教程

    1.背景 大纲 调度任务在系统中中经常用到, 比如 定时发送营销短信 定时检查订单状态 等等..... 总之我们经常会用到定时任务 官方文档:https://www.xuxueli.com/xxl-j ...

  9. stm32 F103C8T6 4x4矩阵键盘使用

    首先感谢 江科大 的stm32入门课程 受益匪浅.推荐有兴趣的朋友去看看. 先看看我用的矩阵键盘是啥样的(很常见的一种) 接线如图(其他型号根据自己需求接上GPIO口) 代码基于stm大善人的代码修改 ...

  10. NOI2024 集合 题解

    给个链接:集合. 很神秘的题目.基本上看到之后就可以想到哈希. 首先想到一个比较神秘的暴力.就是对于每个询问,扫一遍所有 \(a\) 中的数出现的位置,把它弄成一个哈希值(具体怎么弄随意)存到 set ...