当前位置:网站首页>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;
}
边栏推荐
- Introduction to 3D modeling and processing software Liu Ligang University of science and technology of China
- 新手在挖财开通证券账户安全吗?
- Leetcode top 100 questions 1 Sum of two numbers
- HDU - 1069 Monkey and Banana(DP+LIS)
- Global and Chinese markets for business weather forecasting 2022-2028: Research Report on technology, participants, trends, market size and share
- 导电滑环使用的注意事项
- Some common commands of podman
- LevelDB源码分析之memtable
- HCIP Day13
- Understand several related problems in JVM - JVM memory layout, class loading mechanism, garbage collection
猜你喜欢

Leetcode top 100 questions 1 Sum of two numbers

复制宝贝提示材质不能为空,如何解决?

Txncoordsender of cockroachdb distributed transaction source code analysis

Unity drags and modifies scene camera parameters under the editor

How to select conductive slip ring material

busybox生成的东西

Rainbond结合NeuVector实践容器安全管理

Set集合詳細講解

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

0xc000007b应用程序无法正常启动解决方案(亲测有效)
随机推荐
Leetcode top 100 question 2 Add two numbers
SSGSSRCSR区别
Ebpf cilium practice (2) - underlying network observability
[RootersCTF2019]babyWeb
Intelligent operation and maintenance: visual management system based on BIM Technology
Data consistency between redis and database
Tcp/ip explanation (version 2) notes / 3 link layer / 3.2 Ethernet and IEEE 802 lan/man standards
0xc000007b应用程序无法正常启动解决方案(亲测有效)
基于TI DRV8424驱动步进电机实现调速和行程控制
Unity project experience summary
Unit testing with mongodb
Is there any good website or software for learning programming? [introduction to programming]?
Global and Chinese market of 3D design and modeling software 2022-2028: Research Report on technology, participants, trends, market size and share
Printk debugging summary
Actual combat: basic use of Redux
积分商城游戏能够给商家带来什么?怎么搭建积分商城?
Unity drags and modifies scene camera parameters under the editor
Global and Chinese market of broadband amplifiers 2022-2028: Research Report on technology, participants, trends, market size and share
Leetcode top 100 questions 1 Sum of two numbers
Rainbond结合NeuVector实践容器安全管理