当前位置:网站首页>HDU - 1024 Max Sum Plus Plus(DP)
HDU - 1024 Max Sum Plus Plus(DP)
2022-07-01 05:29:00 【WA_ automata】
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;
}
边栏推荐
- Global and Chinese market of broadband amplifiers 2022-2028: Research Report on technology, participants, trends, market size and share
- Global and Chinese market of protection circuit modules 2022-2028: Research Report on technology, participants, trends, market size and share
- AcWing 884. Gauss elimination for solving XOR linear equations
- Unity drags and modifies scene camera parameters under the editor
- Tar command
- Things generated by busybox
- AcWing 888. Finding combinatorial number IV (the problem of finding combinatorial number with high precision)
- HDU - 1069 Monkey and Banana(DP+LIS)
- 如何选择导电滑环材料
- Set集合詳細講解
猜你喜欢
实战:redux的基本使用
Set集合詳細講解
[RootersCTF2019]babyWeb
Series of improving enterprise product delivery efficiency (1) -- one click installation and upgrade of enterprise applications
多表操作-外键级联操作
How to create a progress bar that changes color according to progress
Leetcode316- remove duplicate letters - stack - greedy - string
云原生存储解决方案Rook-Ceph与Rainbond结合的实践
C WPF uses dockpanel to realize screenshot box
Design and application of immutable classes
随机推荐
在Rainbond中一键部署高可用 EMQX 集群
HDU - 1069 Monkey and Banana(DP+LIS)
Flutter 实现每次进来界面都刷新数据
Copy baby prompt: material cannot be empty. How to solve it?
Rust hello-word
AcWing 888. Finding combinatorial number IV (the problem of finding combinatorial number with high precision)
Global and Chinese market of protection circuit modules 2022-2028: Research Report on technology, participants, trends, market size and share
Usage and principle of synchronized
TypeORM 框架
How to traverse massive data in redis
Variable binding and deconstruction for rudimentary rust
Global and Chinese markets of Ethernet communication modules 2022-2028: Research Report on technology, participants, trends, market size and share
Things generated by busybox
Using nocalhost to develop microservice application on rainbow
Tar command
Global and Chinese market of paper machine systems 2022-2028: Research Report on technology, participants, trends, market size and share
Web Security (IX) what is JWT?
Thread process foundation of JUC
[RootersCTF2019]babyWeb
Dynamic verification of new form items in El form; El form verifies that the dynamic form V-IF does not take effect;