最大m子段和

定义一串子段s1,s2,s3 ... sn-1,sn

求m段不交叉最大子段和

解:
设dp[i][j]代表前j个数分成i段的最大和(包括a[j])

状态转移方程:

dp[i][j]=Max(dp[i][j-1]+a[j],dp[i-1][t]+a[j]) (i-1=<t<j)

解释两种状态的最优解:
①.a[j]恰好在下一次最优解末项之后,将a[j]融入a[j-1]的子段中,总段数i不变,+a[j]
②.a[j]不在最优解末项之后,而是单独成一段,那么下一次递归对象总段数-1(i-1),末项为
k,i-1=<t<j,k如果小于i-1负溢出。+a[j]

 #include<cstdio>
using namespace std;
int main()
{
int n, num, cnt, ans;
while(scanf("%d", &n)!=EOF)
{
cnt = ;
for(int i=; i<n; i++)
{
scanf("%d", &num);
if(cnt==)
{
ans = num;
cnt++;
}
else
{
if(num==ans)
cnt++;
else
cnt--;
}
}
printf("%d\n", ans);
}
return ;
}

最新文章

  1. mstsc 远程序桌面登录的 c#开发
  2. Window 对象
  3. Speex回声消除代码分析
  4. Oracle 跟踪事件 set event
  5. Ext入门学习系列(五)表格控件(2)
  6. Hdu 5289-Assignment 贪心,ST表
  7. Google maps not working IE11
  8. selenium1.0和selenium2.0页面等待处理详解
  9. SQL VIEW(视图)
  10. C++ Builder中splitter控件的使用方法简介
  11. Redis简介二
  12. cookie记忆换肤功能实战Demo
  13. ef 增加或者更新的习惯思维
  14. c#上课总结
  15. 华为交换机MSTP+VRRP配置实例说明文档
  16. 详解BOM头以及去掉BOM头的方法--踩过BOM的大坑
  17. 笔记:IIFE 立即执行的函数表达式 +function ($) { }(window.jQuery);
  18. 【SSH】Hibernate关联映射
  19. python字典去重脚本
  20. jpql和sql的区别

热门文章

  1. Zabbix 3.0 配置企业微信报警(注册---测试)
  2. pod的时区问题
  3. mybatis一级二级缓存
  4. LeetCode 394. 字符串解码(Decode String) 44
  5. Flume和 Sqoop
  6. LeetCode 5214. 最长定差子序列(Java)HashMap
  7. Linux查看CPU信息计算CPU核数量
  8. 【题解】Luogu P5324 [BJOI2019]删数
  9. java之spring之spring整合hibernate
  10. vxlan 协议