1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4.  
  5. /**
  6. * @author fishcanfly
  7. */
  8. public class Main {
  9. /**
  10. * main入口由OJ平台调用
  11. */
  12. static long[][] lcs = null;
  13. static int n, k, d;
  14. static long[] arr;
  15.  
  16. public static void main(String[] args) throws IOException {
  17. BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  18. String[] words = br.readLine().split("\\s+");
  19. n = Integer.valueOf(words[0]);
  20. k = Integer.valueOf(words[1]);
  21. d = Integer.valueOf(words[2]);
  22.  
  23. arr = new long[n];
  24. long[][][] dp = new long[n + 1][k + 1][d + 1];
  25. for (int i = 0; i <= n; i++) {
  26. for (int j = 0; j <= k; j++) {
  27. for (int x = 0; x <= d; x++) {
  28. dp[i][j][x] = -1;
  29. }
  30. }
  31. }
  32. words = br.readLine().split("\\s+");
  33. for (int i = 0; i < n; i++) {
  34. arr[i] = Long.valueOf(words[i]);
  35. }
  36.  
  37. dp[0][0][0] = 0;
  38. for (int i = 0; i < n; i++) {
  39. for (int j = 0; j <= k; j++) {
  40. for (int m = 0; m < d; m++) {
  41. if (dp[i][j][m] == -1) continue;
  42.  
  43. // transition when a_i isn't chosen
  44. dp[i + 1][j][m] = Math.max(dp[i + 1][j][m], dp[i][j][m]);
  45.  
  46. // transition when a_i is chosen
  47. if( j+1<=k){
  48. dp[i + 1][j + 1][(m + (int) arr[i])% d] = Math.max(dp[i + 1][j + 1][(m + (int) arr[i])% d], dp[i][j][m] + arr[i]);
  49. }
  50. }
  51. }
  52. }
  53.  
  54. System.out.println(dp[n][k][0]);
  55.  
  56. br.close();
  57. }
  58.  
  59. }

【atcoder abc281_d】动态规划的更多相关文章

  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. AtCoder Grand Contest 020 (AGC020) E - Encoding Subsets 动态规划

    原文链接www.cnblogs.com/zhouzhendong/p/AGC020E.html 前言 真 \(\cdot\) 信仰型动态规划 题解 我们可以采用信仰型动态规划解决此题. 设 \(dp[ ...

  4. AtCoder Beginner Contest 249 E - RLE // 动态规划 + 前缀和优化

    传送门:E - RLE (atcoder.jp) 题意: 求满足原长为N且转换后长度严格小于N条件的小写字母组成的字符串的数量,输出时对P取模. 其中,转换规则为,将连续相同的字串替换为"字 ...

  5. AtCoder [Dwango Programming Contest V] E 动态规划 多项式

    原文链接 https://www.cnblogs.com/zhouzhendong/p/AtCoder-Dwango-Programming-Contest-V-E.html 题意 有 $n$ 个数, ...

  6. AtCoder Grand Contest 026 (AGC026) E - Synchronized Subsequence 贪心 动态规划

    原文链接https://www.cnblogs.com/zhouzhendong/p/AGC026E.html 题目传送门 - AGC026E 题意 给定一个长度为 $2n$ 的字符串,包含 $n$ ...

  7. Atcoder Grand Contest 026 (AGC026) F - Manju Game 博弈,动态规划

    原文链接www.cnblogs.com/zhouzhendong/AGC026F.html 前言 太久没有发博客了,前来水一发. 题解 不妨设先手是 A,后手是 B.定义 \(i\) 为奇数时,\(a ...

  8. AtCoder Grand Contest 030 (AGC030) F - Permutation and Minimum 动态规划

    原文链接www.cnblogs.com/zhouzhendong/p/AGC030F.html 草率题解 对于每两个相邻位置,把他们拿出来. 如果这两个相邻位置都有确定的值,那么不管他. 然后把所有的 ...

  9. 【agc030f】Permutation and Minimum(动态规划)

    [agc030f]Permutation and Minimum(动态规划) 题面 atcoder 给定一个长度为\(2n\)的残缺的排列\(A\),定义\(b_i=min\{A_{2i-1},A_{ ...

  10. 【arc073f】Many Moves(动态规划,线段树)

    [arc073f]Many Moves(动态规划,线段树) 题面 atcoder 洛谷 题解 设\(f[i][j]\)表示第一个棋子在\(i\),第二个棋子在\(j\)的最小移动代价. 发现在一次移动 ...

随机推荐

  1. 小知识:Oracle中的层次查询

    使用Oracle中的start with .. connect by prior ..语句可以轻松实现. 下面通过scott用户下的emp来做演示,使用自己的一个19c测试环境,结果发现默认并没有sc ...

  2. 安装TFA用于快速收集RAC各类日志

    TFA一般主要用于Oracle RAC环境一键收集需要的日志进行分析问题,解决传统人工收集集群.数据库等各类日志效率低下的问题.具体关于TFA的介绍,网上资料已经非常多,在此不再赘述. TFA的安装也 ...

  3. 解密JavaChassis3:易扩展的多种注册中心支持

    本文分享自华为云社区<JavaChassis3技术解密:易扩展的多种注册中心支持>,作者:liubao68. Java Chassis 的早期版本依赖于 Service Center,提供 ...

  4. Windows10系统下JDK1.8的下载安装及环境变量配置

    1. JDK1.8安装 2. 环境变量配置点击此处:官网下载 根据自己的系统 ,下载相应的JDK版本. 1. JDK1.8安装双击下载的安装包(.exe文件),进行安装. 点击"下一步&qu ...

  5. 2024年,我又开始用Linux桌面作为主力系统了~

    前言 19年的时候我买了一个 matebook14 笔记本,配置是8代i5和8G内存,在当时看来作为轻薄本是够用的,但是现在已经2024年了,这内存让我想起来去年苹果的新款 mac mini ,丐版三 ...

  6. UVA10225 Discrete Logging 题解

    题目传送门 前置知识 大步小步算法 题意 多组询问,每次询问依次给定 \(p,a,b\),求 \(a^{x} \equiv b \pmod{p}\) 的最小非负整数解,其中 \(a,p\) 互质. 解 ...

  7. Linux Vim操作看这篇文章就够了

    一.什么是Vim Vim是一个类似于Vi的著名的功能强大.高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性.代码补全.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用.和Emac ...

  8. mysqlGTID主从同步出现1236错误问题

    从主库xtrabackup备份,配置好gtid复制,从主库的从库复制.一直报错误 Last_IO_Error: Got fatal error 1236 from master when readin ...

  9. Java I/O 教程(九) FileWriter和FileReader

    FileWriter Java FileWriter 用于往文件中写入字符数据. 不像FileOutputStream类,你无需转换字符串成字节数组,因为它提供了直接写字符串的方法. 类定义 publ ...

  10. 对yuv存储格式中的yuv420p和yuv420sp的理解

    一.对yuv的认识 yuv是一种颜色编码系统,它将图像的亮度和色度分离开来.y表示亮度,即黑白信息:uv表示色度,即颜色信息.yuv常用于视频压缩和传输中,因为它可以更有效地表示人眼对亮度和色度的敏感 ...