当前位置:网站首页>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;
}
边栏推荐
- 每日一题-LeetCode1175-质数排列-数学
- Print stream and system setout();
- 如何选择导电滑环材料
- Distributed transactions - Solutions
- Rust基础入门之变量绑定与解构
- Ebpf cilium practice (2) - underlying network observability
- Implementation of distributed lock
- QT等待框制作
- 数字金额加逗号;js给数字加三位一逗号间隔的两种方法;js数据格式化
- Solution: thread 1:[< *> setvalue:forundefined key]: this class is not key value coding compliant for the key*
猜你喜欢

eBPF Cilium实战(2) - 底层网络可观测性

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

How to select conductive slip ring material

Tar command

Set set detailed explanation

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

每日一题-LeetCode1175-质数排列-数学

Set集合详细讲解

Copier le matériel de conseils de bébé ne peut pas être vide, comment résoudre?

複制寶貝提示材質不能為空,如何解决?
随机推荐
Character input stream and character output stream
Solution: drag the Xib control to the code file, and an error setvalue:forundefined key:this class is not key value coding compliant for the key is reported
AcWing 887. Finding combinatorial number III (Lucas theorem)
积分商城游戏能够给商家带来什么?怎么搭建积分商城?
How to start learning editing? Detailed analysis of zero basis
C WPF uses dockpanel to realize screenshot box
TypeORM 框架
0xc000007b the application cannot start the solution normally (the pro test is valid)
Use of STM32 expansion board temperature sensor and temperature humidity sensor
Application and principle of ThreadPoolExecutor thread pool
Global and Chinese markets for soft ferrite cores 2022-2028: Research Report on technology, participants, trends, market size and share
Leetcode1497- check whether array pairs can be divided by K - array - hash table - count
Global and Chinese markets of gps/gnss receiver modules 2022-2028: Research Report on technology, participants, trends, market size and share
[RootersCTF2019]babyWeb
And search: the suspects (find the number of people related to the nth person)
Print stream and system setout();
如何创建一个根据进度改变颜色的进度条
QDataStream的简单读写验证
Global and Chinese market of broadband amplifiers 2022-2028: Research Report on technology, participants, trends, market size and share
轻松上手Fluentd,结合 Rainbond 插件市场,日志收集更快捷