当前位置:网站首页>HDU - 1024 Max Sum Plus Plus(DP)
HDU - 1024 Max Sum Plus Plus(DP)
2022-07-01 05:23:00 【WA_自动机】
HDU - 1024 Max Sum Plus Plus(DP)
Problem Description
Now I think you have got an AC in Ignatius.L’s “Max Sum” problem. To be a brave ACMer, we always challenge ourselves to more difficult problems. Now you are faced with a more difficult problem.
Given a consecutive number sequence S1, S2, S3, S4 … Sx, … Sn (1 ≤ x ≤ n ≤ 1,000,000, -32768 ≤ Sx ≤ 32767). We define a function sum(i, j) = Si + … + Sj (1 ≤ i ≤ j ≤ n).
Now given an integer m (m > 0), your task is to find m pairs of i and j which make sum(i1, j1) + sum(i2, j2) + sum(i3, j3) + … + sum(im, jm) maximal (ix ≤ iy ≤ jx or ix ≤ jy ≤ jx is not allowed).
But I`m lazy, I don’t want to write a special-judge module, so you don’t have to output m pairs of i and j, just output the maximal summation of sum(ix, jx)(1 ≤ x ≤ m) instead.
Input
Each test case will begin with two integers m and n, followed by n integers S1, S2, S3 … Sn.
Process to the end of file.
Output
Output the maximal summation described above in one line.
Sample Input
1 3 1 2 3
2 6 -1 4 -2 3 -2 3
Sample Output
6
8
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int N = 1000010;
int a[N],f[N];
int main()
{
int n,m;
while(scanf("%d%d",&m,&n)!=EOF)
{
memset(f,0,sizeof f);
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
for(int i=1;i<=m;i++)
{
int sum=0;
for(int j=1;j<=i;j++)
sum+=a[j];
f[n]=sum;
for(int j=i+1;j<=n;j++)
{
sum=max(sum,f[j-1])+a[j];
f[j-1]=f[n];
f[n]=max(f[j-1],sum);
}
}
printf("%d\n",f[n]);
}
return 0;
}
边栏推荐
- [RootersCTF2019]babyWeb
- FileInputStream
- 如何开始学剪辑?零基础详细解析
- Print stream and system setout();
- Fluentd is easy to use. Combined with the rainbow plug-in market, log collection is faster
- Solution: thread 1:[< *> setvalue:forundefined key]: this class is not key value coding compliant for the key*
- 云原生存储解决方案Rook-Ceph与Rainbond结合的实践
- Thread process foundation of JUC
- QDataStream的简单读写验证
- Mathematical knowledge: finding the number of divisors
猜你喜欢

Intelligent operation and maintenance: visual management system based on BIM Technology

Fluentd is easy to use. Combined with the rainbow plug-in market, log collection is faster

Data consistency between redis and database

One click deployment of highly available emqx clusters in rainbow

el-cascader回显失败;el-cascader回显不出来

How to meet the requirements of source code confidentiality and source code security management

busybox生成的东西

LeetCode522-最长特殊序列II-哈希表-字符串-双指针

Leetcode1497- check whether array pairs can be divided by K - array - hash table - count

提高企业产品交付效率系列(1)—— 企业应用一键安装和升级
随机推荐
Understand several related problems in JVM - JVM memory layout, class loading mechanism, garbage collection
Application and principle of ThreadPoolExecutor thread pool
Vérification simple de la lecture et de l'écriture de qdatastream
Unit testing with mongodb
CockroachDB: The Resilient Geo-Distributed SQL Database 论文阅读笔记
Several methods of creating thread classes
Unity project experience summary
One click deployment of highly available emqx clusters in rainbow
Actual combat: basic use of Redux
And search: the suspects (find the number of people related to the nth person)
How to start learning editing? Detailed analysis of zero basis
Design and application of immutable classes
How to traverse massive data in redis
Flutter 实现每次进来界面都刷新数据
LeetCode1497-检查数组对是否可以被 k 整除-数组-哈希表-计数
Vmware workstation network card settings and three common network modes
CockroachDB 分布式事务源码分析之 TxnCoordSender
Variable binding and deconstruction for rudimentary rust
Rust hello-word
Solution: thread 1:[< *> setvalue:forundefined key]: this class is not key value coding compliant for the key*