import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String[] words = in.readLine().split("\\s+");
int n, m;
n = Integer.valueOf(words[0]);
m = Integer.valueOf(words[1]);
words = in.readLine().split("\\s+");
int[] arr = new int[n];
for (int i = 0; i < words.length; i++) {
arr[i] = Integer.valueOf(words[i]);
}
int[][][] dp = new int[n+1][m + 1][2];
for (int i = 0; i <= n; i++) {
for (int j = 0; j <= m; j++) {
dp[i][j][0] = 1000000000;
dp[i][j][1] = 1000000000;
}
}
dp[1][0][0] = 1;
if (arr[0] <= m) {
dp[1][arr[0]][1] = 0;
} for (int i = 2; i <= n; i++) {
dp[i][0][0] = 1;
for (int j = 1; j <= m; j++) {
dp[i][j][0] = Math.min(dp[i - 1][j][0], dp[i - 1][j][1] + 1);
if (arr[i - 1] <= j) {
dp[i][j][1] = dp[i - 1][j - arr[i-1]][0];
dp[i][j][1] = Math.min(dp[i][j][1], dp[i - 1][j - arr[i - 1]][0]);
dp[i][j][1] = Math.min(dp[i][j][1], dp[i - 1][j - arr[i - 1]][1]);
}
}
} for (int j = 1; j <= m; j++) {
int x = Math.min(dp[n][j][0],dp[n][j][1]);
System.out.println(x>=1000000000?-1:x);
} in.close();
} }

【atcoder 293 F - Erase Subarrays】【动态规划】的更多相关文章

  1. Atcoder abc187 F Close Group(动态规划)

    Atcoder abc187 F Close Group 题目 给出一张n个点,m条边的无向图,问删除任意数量的边后,留下来的最少数量的团的个数(\(n \le 18\) ) 题解 核心:枚举状态+动 ...

  2. AtCoder Grand Contest 002 (AGC002) F - Leftmost Ball 动态规划 排列组合

    原文链接https://www.cnblogs.com/zhouzhendong/p/AGC002F.html 题目传送门 - AGC002F 题意 给定 $n,k$ ,表示有 $n\times k$ ...

  3. 【CodeForces】626 F. Group Projects 动态规划

    [题目]F. Group Projects [题意]给定k和n个数字ai,要求分成若干集合使得每个集合内部极差的总和不超过k的方案数.n<=200,m<=1000,1<=ai< ...

  4. 【ATcoder s8pc_3 F】 寿司

    http://s8pc-3.contest.atcoder.jp/tasks/s8pc_3_f (题目链接) 题意 有一个长度为$N$的数列$A$,初始为$0$.$Q$次操作,每次两个参数$x,y$. ...

  5. [AtCoder ARC076] F Exhausted?

    霍尔定理 + 线段树? 咱学学霍尔定理... 霍尔定理和二分图完美匹配有关,具体而言,就是定义了二分图存在完美匹配的充要条件: 不妨设当前二分图左端集合为 X ,右端集合为 Y ,X 与 Y 之间的边 ...

  6. @atcoder - AGC037F@ Counting of Subarrays

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定 L,连续至少 L 个相同的数 k 可以合并成 1 个 k+ ...

  7. 【Atcoder ARC060F】最良表現 / Best Representation

    Atcoder ARC060 F 题意:给一个串,求将其分成最少的没有循环节的串的种数. 思路:先求KMP的\(fail\)数组.然后发现最少的串数只有三种可能:\(1\).\(2\).\(n\). ...

  8. Bzoj1486/洛谷P3199 最小圈(0/1分数规划+spfa)/(动态规划+结论)

    题面 Bzoj 洛谷 题解(0/1分数规划+spfa) 考虑\(0/1\)分数规划,设当前枚举到的答案为\(ans\) 则我们要使(其中\(\forall b_i=1\)) \[ \frac{\sum ...

  9. 2017清北学堂(提高组精英班)集训笔记——动态规划Part3

    现在是晚上十二点半,好累(无奈脸),接着给各位——也是给自己,更新笔记吧~ 序列型状态划分: 经典例题:乘积最大(Luogu 1018) * 设有一个长度为 N 的数字串,要求选手使用 K 个乘号将它 ...

  10. 长春理工大学第十四届程序设计竞赛(重现赛)F.Successione di Fixoracci

    链接:https://ac.nowcoder.com/acm/contest/912/F 题意: 动态规划(Dynamic programming,简称dp)是一种通过把原问题分解为相对简单的子问题的 ...

随机推荐

  1. 教你轻松用上ChatGPT

    最近ChatGPT大火呀,小伙伴们是不是在网上看到各种和ChatGPT有趣聊天的截图,奈何自己实力不够,被网络拒之门外,只能眼馋别人的东西.看别人玩,肯定不如自己玩一把舒服的啊.今天小卷就给大家汇总了 ...

  2. NOIp 2023 游记

    咕了正好一周的 NOIp 游记,是我第一篇游记,也是一张寄往四年后不得不退役的.即将画上青春句号的自己的,包含了自己的青涩.期待与成长的信笺. Day \((-\infty, -7)\) CSP-S ...

  3. JS Leetcode 208. 实现 Trie (前缀树) 题解分析,第一次了解前缀树(字典树)

    壹 ❀ 引 本题来自LeetCode 208. 实现 Trie (前缀树),难度中等,题目描述如下: Trie(发音类似 "try")或者说 前缀树 是一种树形数据结构,用于高效地 ...

  4. NC54586 小翔和泰拉瑞亚

    题目链接 题目 链接:https://ac.nowcoder.com/acm/problem/54586 来源:牛客网 题目描述 小翔爱玩泰拉瑞亚 . 一天,他碰到了一幅地图.这幅地图可以分为 \(n ...

  5. NC21125 践踏

    题目链接 题目 题目描述 首先给定一个定值k,支持如下操作(在数轴上) 加入一条线段[l,r] 删除一条已经存在的线段 给定x,问有多少个区间包含x+kt,其中t是一个整数变量,即t ∈ Z 比如说当 ...

  6. XML和JSON的比较

    XML和JSON的比较 XML与JSON都可以用来描述或者存储数据,两者都有各自的优点,使用场景取决于需求. 描述 XML 可扩展标记语言Extensible Markup Language,是一种用 ...

  7. Java8接口中抽象方法和default和static方法的区别和使用

    Java接口说明 传统的理解是接口只能是抽象方法.但是程序员们在使用中,发现很不方便,实现接口必须重写所有方法,很麻烦.所以java设计者妥协了,在java8中,支持default和static方法, ...

  8. vs 工程中替换 Qt 静态库

    上篇介绍了如何编译 Qt 静态库 编译 windows 上的 qt 静态库 这篇介绍如何替换已有的 Qt 静态库,比如 Qt5.15.0 有很多 bug,我们不得不提升 Qt 版本来避免 bug 导致 ...

  9. DVWA XSS

    XSS Store hign level <?php if( isset( $_POST[ 'btnSign' ] ) ) { // Get input $message = trim( $_P ...

  10. git commit 不生成 changeId 解决方案

    1). 检查仓储 .git/hook 下面是否有 commit-msg 文件,如果没有可以到下面的地址下载,或者把其他同事的 commit-msg 文件拷贝到你的 .git/hook 重新commit ...