1 /*
 2     题意:给一个长度为n的序列, 从中选择长度为m的k个区间(任意两个区间不会有公共部分)
 3     使得所选择的区间的和最大!
 4     思路:这是一种很常见的dp
 5
 6     dp[i][j] 表示的是前 i 个数选择 j 个 长度为m区间的最大和!
 7     s[i]记录的是前 i 个数字的和!
 8     dp[i][j] = max( dp[i - 1][j], dp[i - m][j - 1] + s[i] - s[i-m] );
 9 */
10 #include<iostream>
11 #include<cstdio>
12 #include<cstring>
13 #include<algorithm>
14 #define N 5005
15 using namespace std;
16 typedef long long ll;
17
18 ll dp[N][N];
19 ll s[N];
20
21 int main(){
22     int n, m, k;
23     scanf("%d%d%d", &n, &m, &k);
24     for(int i = 1; i <= n; ++i){
25         scanf("%lld", &s[i]);
26         s[i] += s[i-1];
27     }
28
29     for(int j = 1; j <= k; ++j)
30         for(int i = j*m; i <= n; ++i)
31            dp[i][j] = max( dp[i - 1][j], dp[i - m][j - 1] + s[i] - s[i-m] );
32
33     printf("%lld\n", dp[n][k]);
34
35     return 0;
36 }

附一个经典的dp!

题意:
给定2个字符串a, b,求b的子序列在a中出现的次数。要求可以是不连续的,但是b在a中的顺序必须和b以前的一致。
思路:
dp[i][j]表示:b的前j个字符在a的前i个字符中出现的次数。
似乎这种表示方法司空见惯,但是一开始我还真没能搞懂如何去递推。事情的真相是:
如果a[i] == b[j]则 dp[i][j] = dp[i-1][j] + dp[i-1][j-1];
如果a[i] != b[j]则 dp[i][j] = dp[i-1][j];

转载于:https://www.cnblogs.com/hujunzheng/p/3991460.html

codeforces George and Job相关推荐

  1. 【CodeForces - 467C】George and Job(dp,思维)

    题干: The new ITone 6 has been released recently and George got really keen to buy it. Unfortunately, ...

  2. Codeforces Round #267 Div2 C George and Job --DP

    题意:把长度为n的序列分成k个m长的连续小序列,这些连续小序列的和最大是多少. 解法:显然DP. 定义: dp[i][j] 为前 i 个元素分成j个m端,且 i 是第j个的末尾的最大和. 那么有: d ...

  3. CodeForces - 467C George and Job(二维dp)

    题目链接:点击查看 题目大意:给出n个数,现在要从中选取k段长度为m的不相交的子数列,问如何选择能使得覆盖的数之和最大 题目分析:读完题之和就感觉是个dp题,但不会呀,去看了题解才会的.. 因为要选取 ...

  4. CodeForces - 387D George and Interesting Graph(二分图最大匹配+暴力)

    题目链接:点击查看 题目大意:给出n个点和m条边组成的有向图,现在我们需要找出一个点作为中心点,然后增加或减少边的条数以达到下面的目标: 除了中心点外,其他的每个点的入度为2且出度为2 中心点和每个点 ...

  5. Codeforces Gym 100187D D. Holidays 排列组合

    D. Holidays Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100187/problem/D ...

  6. Codeforces上通过数超过5W人的题

    Codeforces上通过数超过5W人的题 共32题:1000分4题,800分28题. 编号 题号 题名 分数 通过数 1 4A Watermelon 800 x193501 2 71A Way To ...

  7. CodeForces - Feng Shui(半平面交)

    题目链接:http://codeforces.com/gym/101650/attachments Time Limit: 2000MS Memory Limit: 65536K Descriptio ...

  8. 【Codeforces】A2组刷题记录(50 / 50)完结

    目录 A1. Counterexample A2. Good Number A3. Dice Tower ★A4. Alyona and Numbers A5. Mountain Scenery rz ...

  9. CodeForces 375D Tree and Queries

    传送门:https://codeforces.com/problemset/problem/375/D 题意: 给你一颗有根树,树上每个节点都有其对应的颜色,有m次询问,每次问你以点v为父节点的子树内 ...

最新文章

  1. 回归算法 - 线性回归求解 θ(最大似然估计求解)
  2. 复旦 哈工大计算机学院,国内高校中哈工大和上交复旦在一个档次吗?从这些方面看你就知道...
  3. 【完整代码】使用Semaphore实现限流代码示例
  4. 免费好用的web应用托管平台
  5. vscode 设置断点知乎_vscode 代码自动换行设置
  6. 前端学习(2545):找不到模块
  7. matlab怎么打出角频率,[Matlab]频率f,角频率Ω和数字频率w的物理含义
  8. JDBC的API与德鲁伊Druid连接池配置
  9. memcached群集
  10. 通过修改控制文件scn推进数据库scn
  11. 濛濛有感——懂与不懂(一)
  12. 522. 最长特殊序列 II
  13. 百家号在线视频编辑器的技术演进
  14. Matlab符号计算与数值计算对比
  15. 计算机强制关机后重启报错,电脑开起来就自动关机
  16. python str转为list,dict,tuple等 eval,exec,
  17. linksys 路由器刷机备忘
  18. vscode安装open in browser报错
  19. 项目 --- 《水晶报表》
  20. Linux:安装和配置tomcat详细教程

热门文章

  1. html提现页面模板,提现记录.html
  2. Centos/Red Hat6.8 安装、配置、启动Gitlab (内网环境)心得分享
  3. RuoYi-Cloud 部署篇_02(linux环境 Oracle +nginx版本)
  4. linux查看openssh和openssl版本命令
  5. SFTP多用户权限 linux环境 一站式解决方案
  6. Spring Boot 配置SSL 实现HTTPS
  7. 实战_02_Spring SpringMVC 整合Mybaits
  8. 系统架构设计师 - 软件架构设计 - 基于架构开发方法 ABSD (Architecture-Based Soft Design)
  9. 使用hbuilder的maps模块调起百度地图导航
  10. 可能这些是你想要的H5软键盘兼容方案