hdu1244 Max Sum Plus Plus Plus--DP
发布日期:2021-10-03 20:32:00
浏览次数:1
分类:技术文章
本文共 988 字,大约阅读时间需要 3 分钟。
原题链接:
一:原题内容
Problem Description
给定一个由n个正整数组成的整数序列 a1 a2 a3 ... an 求按先后次序在其中取m段长度分别为l1、l2、l3...lm的不交叠的连续整数的和的最大值。
Input
第一行是一个整数n(0 ≤ n ≤ 1000),n = 0表示输入结束 第二行的第一个数是m(1 ≤ m ≤ 20), 第二行接下来有m个整数l1,l2...lm。 第三行是n个整数a1, a2, a2 ... an.
Output
输出m段整数和的最大值。
Sample Input
32 1 11 2 342 1 21 2 3 50
Sample Output
510
二:分析理解
参考 和
三:AC代码
#include#include #include using namespace std;int dp[1005][30];int sum[1005];int l[30];int num[1005];int main(){ int n, m; while (scanf("%d", &n) && n) { scanf("%d", &m); for (int i = 1; i <= m; i++) scanf("%d", &l[i]); for (int i = 1; i <= n; i++) { scanf("%d", &num[i]); sum[i] = sum[i - 1] + num[i]; } memset(dp, 0, sizeof(dp));// for (int i = 1; i <= n; i++) for (int j = 1; j <= m; j++) for (int k = i - l[j]; k >= 0; k--) dp[i][j] = max(dp[i][j], dp[k][j - 1] + sum[i] - sum[i - l[j]]); int _max = 0; for (int i = 1; i <= n; i++)// _max = max(dp[i][m], _max); printf("%d\n", _max); } return 0;}
转载地址:https://blog.csdn.net/LaoJiu_/article/details/50988141 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年02月29日 15时06分13秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
安徽信息技术初中会考上机考试模拟_2020年中小学寒假、考试时间定下了!
2019-04-21
稳定币usda是哪个发行的_武夷山币装帧款曝光,共4款设计,你喜欢哪款?
2019-04-21
苹果笔记本的end键_笔记本用户的大烦恼:触控板,想好好用你不容易
2019-04-21
趣玩机器人什么时候成立的_【直播回顾】当我们谈机器人集成调试的时候在谈什么...
2019-04-21
vue 地理位置定位_HTML5地理位置
2019-04-21
pac代理模式什么意思_托管仓库租赁电商仓储运营模式托管什么意思
2019-04-21
validated 验证数组_在 Laravel 中处理请求验证的智能方法
2019-04-21
java 拼接路径优雅方式_Java安全编码实践总结
2019-04-21
realme x2 深度测试打不开_搭载65W超级闪充,realme真我X7手机充电评测
2019-04-21
整数取反编程_【每日编程185期】数字的补数
2019-04-21
能用别的软件吗_手机软件能用蓝牙传送吗
2019-04-21
为什么图片要2的倍数_为什么宝宝喜欢流“口水”?这种2种原因父母要知道,建议收藏...
2019-04-21
下载了XAMPP怎样打开MYSQL_xampp mysql安装启动
2019-04-21
pdo转mysql_mysql转mysqli或pdo
2019-04-21
mysql如果没有表就创建_mysql – 改变表是否存在或创建如果没有
2019-04-21
ireport连接mysql_ireport 4.5教程之数据源介绍
2019-04-21