题目

DP, 用的\(dp[i][j]\)表示\(i\)之前的数选了\(j\)个得到的最大结果,然后状态转移方程应该是

\[if (j \% t == 0)~~dp[i][j] = max(dp[i][j], max(dp[i - 1][j] - S[i], dp[i - 1][j - 1] + S[i] + B[i]) );
\]

\[else~~dp[i][j] = max(dp[i][j], max(dp[i - 1][j] - S[i], dp[i - 1][j - 1] + S[i]) );
\]

#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int n, t, maxn;
int S[1001010], B[100010];
int sums[1001001], sumb[101001];
int dp[5001][5001];//dp[i][j]表示前i个数已经连续跳了j次的最大得分, j属于1到t
int main()
{
scanf("%d%d", &n, &t);
for (int i = 1; i <= n; i++)
scanf("%d", &S[i]);
for (int i = 1; i <= n; i++)
scanf("%d", &B[i]);
for (int i = 1; i <= n; i++)
dp[i][0] = dp[i - 1][0] - S[i];//初始化为负的前缀和,因为不选会扣分。
for (int i = 1; i <= n; i++)
for (int j = i; j >= 1; j--)
{
if (j % t == 0)//
dp[i][j] = max(dp[i][j], max(dp[i - 1][j] - S[i], dp[i - 1][j - 1] + S[i] + B[i]) ); // [i-1][j]说明i这个位置的数不选。
else
dp[i][j] = max(dp[i][j], max(dp[i - 1][j] - S[i], dp[i - 1][j - 1] + S[i]) );
}
for (int i = 1; i <= n; i++)
maxn = max(maxn, dp[n][i]);
printf("%d", maxn);
return 0;
}

最新文章

  1. JAVA的容器---List,Map,Set (转)
  2. Oracle 游标使用
  3. 制做RPM包
  4. git(4)如何在windows上安装git
  5. Linux msgsnd : invalid argument
  6. oracle中的dual表详解
  7. 全局函数的Result一定要每次都初始化,否则上次的结果会被保持到下一次继续使用
  8. 【.Net基础拾遗】品味OO继承
  9. PHP之输出控制 ob_start(),ob_get_contents(),ob_end_clean()
  10. DataFrame创建
  11. Flink升级到1.4版本遇到的坑
  12. UsernamePasswordAuthenticationToken
  13. 【bzoj1150】[CTSC2007]数据备份Backup 模拟费用流+链表+堆
  14. 表单验证,添加动态class
  15. ArcMap 图层无法编辑
  16. smali注入常用代码
  17. Confluence 6 为 Active Directory 配置一个 SSL 连接
  18. Java中读取.properties配置文件的通用类
  19. 转:使用Mosquitto-Auth-Plugin对mqtt客户端进行验证
  20. 20155304 2016-2017-2 《Java程序设计》实验五(网络编程与安全)实验报告

热门文章

  1. 利用vba实现excel表格连接打印编号(一页两个编号),编号支持前缀
  2. k8s--yml文件3
  3. 拓展 - Webrtc 的回声抵消(aec、aecm)算法简介
  4. 【转载】C#中使用int.Parse方法将字符串转换为整型Int类型
  5. 两个数组的交集 II
  6. 遍历js对象中的属性
  7. 通过公网ip访问虚拟机web服务
  8. 1行Python代码制作动态二维码
  9. php 弹窗案例
  10. centos7 docker安装Jenkins BlueOcean