dp..dp(i, j)表示画两个点为i-j, i的最优答案. dp(i, j) = min{ dp(i-j, k) } + cost[i] (1≤k≤M-j)

令f(i, j) = min{dp(i, j)}, 那么转移时间下降为O(1).然后滚动数组..这道题卡空间..时间复杂度O(NM)

--------------------------------------------------------------------------------

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn = 10001;
const int maxm = 101;
const int INF = 0x3F3F3F3F;
int dp[maxm], f[maxn][maxm], cost[maxn], N, M;
int main() {
memset(f, INF, sizeof f);
scanf("%d%d", &N, &M);
for(int i = 1; i <= N; i++) scanf("%d", cost + i);
int ans = INF;
for(int i = 1; i <= N; i++) {
if(i < M) f[i][0] = dp[0] = cost[i];
   for(int j = 1; j <= M; j++)  {
if(j > 1) f[i][j] = f[i][j - 1];
if(j > i) continue;
dp[j] = f[i - j][M - j];
if(i <= M) dp[j] = min(dp[j], f[i - j][0]);
f[i][j] = min(f[i][j], dp[j] += cost[i]);
if(N - i + j + 1 <= M) ans = min(ans, dp[j]);
   }
}
printf("%d\n", ans);
return 0;
}

--------------------------------------------------------------------------------

183. Painting the balls

time limit per test: 0.25 sec.
memory limit per test: 4096 KB
input: standard input
output: standard output
Petya puts the N white balls in a line and now he wants to paint some of them in black, so that at least two black balls could be found among any M successive balls. Petya knows that he needs Ci milliliters of dye exactly to paint the i-th ball. Your task is to find out for Petya the minimum amount of dye he will need to paint the balls.

Input
The first line contains two integer numbers N and M (2<=N<=10000, 2<=M<=100, M<=N). The second line contains N integer numbers C1, C2, ..., CN (1<=Ci<=10000).

Output
Output only one integer number - the minimum amount of dye Petya will need (in milliliters).

Sample test(s)

Input
6 3 
1 5 6 2 1 3

Output
9

Note
Example note: 1, 2, 4, 5 balls must be painted.
[submit]
[forum]

转载于:https://www.cnblogs.com/JSZX11556/p/4797697.html

SGU 183. Painting the balls( dp )相关推荐

  1. SGU 183 Painting the balls

    题目描述 小宝把\(N\)个白球排成一列,他想把一些白球刷为黑色,且任意连续\(m\)个球中至少要有\(2\)个黑球. 小宝知道他需要\(C_i\)的染料刷第\(i\)个球.请你帮小宝算算他最少需要多 ...

  2. [洛谷 P4084 USACO17DEC] Barn Painting G (树形dp经典)

    [洛谷 P4084 USACO17DEC] Barn Painting G 题目链接 大致题意: 给定一颗N个节点组成的树,3种颜色,其中K个节点已染色,要求任意两相邻节点颜色不同,求合法染色方案数 ...

  3. 【洛谷P4084】Barn Painting【树形DP】

    题目大意: 题目链接:https://www.luogu.org/problemnew/show/P4084 一棵nnn个节点的树上有kkk个点已被染色.求将这棵树染成三种颜色且相邻的节点颜色不同的方 ...

  4. 史上最全的SGU题目分类

    由于SGU上神题遍地,特列此表,便于训练时分类训练. 101 Domino 欧拉路 102 Coprime 枚举/数学方法 103 Traffic Lights 最短路 104 Little Shop ...

  5. Educational Codeforces Round 67 (Rated for Div. 2)(D思维题 线段树/E树形dp(换根dp) 二次扫描与换根法)

    心得 D写了个假算法被hack了wtcl- E据涛神说是二次扫描与换根法,看了看好像和树形dp差不多 F概率dp G费用流 回头再补 思路来源 马老师 归神 贤神等代码 http://www.mami ...

  6. 《题目与解读》红书 训练笔记目录《ACM国际大学生程序设计竞赛题目与解读》

    虽然2012年出版的老书了,但是是由三次世界冠军的上海交大ACM队出版的书籍,选择的题目是ACM经典中的经典,书中有非常详细的题解,可以学到很多东西,值得一刷. 目录 第一部分 第一章 数学 1.1 ...

  7. 动态规划选讲 8.15

    动态规划选讲 8.15 动态规划选讲 815 地精部落SDOI 2010 打砖块 另一个打砖块 TreePOJ 1848 Painting the ballsSGU183 CF 611D 洪水概率DP ...

  8. python不同目录调用_python3 不同目录间模块调用

    #Author by Andy #_*_ coding:utf-8 _*_ #__file__获取当前程序的相对路径 import os,sys #print(__file__) # os.path. ...

  9. WPF基础到企业应用系列8——依赖属性之“风云再起”

    一. 摘要 首先圣殿骑士很高兴"WPF 基础到企业应用系列" 能得到大家的关注.支持和认可.看到很多朋友留言希望加快速度的问题,我会尽力的,对你们的热情关注也表示由衷的感谢.这段时 ...

最新文章

  1. JAVA常用基础知识点[继承,抽象,接口,静态,枚举,反射,泛型,多线程...]
  2. Tensorflow一些常用基本概念与函数(1)
  3. 【Android 逆向】Android 进程注入工具开发 ( EIP 寄存器指向 dlopen 函数 | ESP 寄存器指向栈内存 | 调试程序收回目标进程控制权 )
  4. java io 输出流_Java IO 输入和输出流
  5. 批量开物料账期的程序
  6. golang 读取文件最后一行_测试用例是开发人员最后一块遮羞布
  7. 推荐:26种NLP练手项目(代码+数据)
  8. RS-232、RS-422与RS-485标准
  9. Linux 安装 nginx 服务教程
  10. 非常适合新手的jq/zepto源码分析05
  11. WSL2构建android10+kernel源码适配pixel
  12. selenium pydev环境配置中IEdriver server失败
  13. mac 修改hosts 文件的方法
  14. windows7 优化:readyboost总结
  15. 模型保存文件.npy
  16. 免费云存储工具类——七牛云(更改配置信息,直接使用)
  17. 从 Quora 的 187 个问题中学习机器学习和 NLP
  18. 信息学奥赛一本通 1386:打击犯罪(black)
  19. 如何展示舞台灯光秀的艺术表现力
  20. C语言简单的键盘玩扫雷小游戏(完结)

热门文章

  1. Sharepoint学习笔记—ECM系列--文档集(Document Set)的实现
  2. 在Ubuntu为Android硬件抽象层(HAL)模块编写JNI方法提供Java访问硬件服务接口 6...
  3. CSS3学习——设计优雅的数据表格
  4. Log4Net ,.net和SQL Server的完美结合
  5. tw-wr641g ttl串口
  6. Ubuntu 建立tftp服务器
  7. linux gcc延时怎么写,推迟C静态对象构建 – Linux上的GCC
  8. Xshell操控kali-linux虚拟机
  9. 与时代并肩的数字创新者
  10. 函数计算如何帮助语雀构建稳定且安全的业务架构?