博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU-1024
阅读量:6619 次
发布时间:2019-06-25

本文共 907 字,大约阅读时间需要 3 分钟。

链接:https://vjudge.net/problem/HDU-1024

题意:

给m 和n个数,将n个数分为m段,不交叉,求m段和的最大值。

思路:

刚开始一直看不懂怎么分,最后发现有的可以不选。

dp加优化。

Max数组记录上一段,对应几个数的最大值。

代码:

#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;typedef long long LL;const int MAXN = 1e6 + 10;const int INF = 0x7fffffff;int a[MAXN];int dp[MAXN];int Max[MAXN];int main(){ int n, m, mmax; while (~scanf("%d%d", &m, &n)) { for (int i = 1;i <= n;i++) scanf("%d", &a[i]); memset(dp,0, sizeof(dp)); memset(Max,0, sizeof(Max)); for (int i = 1;i <= m;i++) { mmax = -INF; for (int j = i;j <= n;j++) { dp[j] = max(dp[j - 1], Max[j - 1]) + a[j]; Max[j - 1] = mmax; mmax = max(mmax, dp[j]); } } printf("%d\n", mmax); } return 0;}

  

转载于:https://www.cnblogs.com/YDDDD/p/10353788.html

你可能感兴趣的文章
强大的jQuery网格插件 ParamQuery
查看>>
io.lettuce.core.RedisCommandTimeoutException: Command timed out
查看>>
种子填充算法描述及C++代码实现
查看>>
Kali渗透测试——快速查找Metasploit的模块
查看>>
如何生成项目的chm文档
查看>>
java封装httpClient工具(支持http和https,包含get和post请求)
查看>>
Rocket - diplomacy - LazyModuleImpLike
查看>>
如何取消OneNote的粘贴来源地址
查看>>
Nginx+Tomcat实现动静分离
查看>>
Exchange Server 2016管理系列课件25.管理安全通讯组
查看>>
计算机科学,大一学生怎样来爱你(文&PPT)
查看>>
linux中vmstat命令详解
查看>>
PHP 开发社区微信服务号实战图解
查看>>
Exchange Server 2013 系列八:邮箱服务器角色DAG实战
查看>>
php使用curl下载指定大小的文件
查看>>
VS2013创建Node.js C++ Addons的过程
查看>>
amaze ui中的icon button
查看>>
tcp 三次握手
查看>>
XML中添加换行符
查看>>
在C#中使用属性控件添加属性窗口
查看>>