Educational Codeforces Round 123 (Rated for Div. 2)C、Increase Subarray Sums(求前缀和)

发布时间:2023-10-05 09:30

子段连续
求最大子段和(dp)

int Maxsum(int n,int *x)
{
    int sum = 0,b = 0,ll,rr;
    for(int i = 1;i <= n;i++)
    {
        if(b > 0)
            {b += x[i];}
        else
            {b = x[i];}
        if(b > sum)
            {sum = b;}
    }
    return sum;
}

C、Increase Subarray Sums
求各个长度时的最大子段和,x需要加的个数分别加到对应长度的子段和上使得sum最大。

#include
using namespace std;
typedef long long ll;
ll b[5005],dp[5005];
int main(){
	ios::sync_with_stdio(false);
	int t;
	cin>>t;
	while(t--){
		ll n,x;
		cin>>n>>x;
		for(int i=1;i<=n;i++) cin>>b[i],b[i]=b[i]+b[i-1],dp[i]=-1e18;//前缀和
		for(int i=1;i<=n;i++)
			for(int j=i;j<=n;j++)
				dp[j-i+1]=max(dp[j-i+1],b[j]-b[i-1]);//各个长度的最大子段和
		for(int i=0;i<=n;i++){
			ll mx=0;
			for(int j=0;j<=n;j++)
				mx=max(mx,dp[j]+min(i,j)*x);//x的个数分别加到对应长度的最大子段上
			cout<<mx<<\' \';
		}
		cout<<\'\\n\';
	} 
    return 0;
}

你可能感兴趣的

相关推荐

线性SVM决策过程的可视化

工业自动化要学python_翻译:对测试自动化来说,为什么说Python是非常好的(选择)WHY PYTHON IS GREAT FOR TEST AUTOMATION...

《微信小程序》开发 问题记录

什么时候不能使用es6箭头函数?

如何向mongoDB中添加新的字段附代码(全)

线程池,我是谁?我在哪儿?

【易学又易用,就在MindSpore v1.7 !】基于新特性的mindspore.numpy进行图像拼接

危化品企业双重预防机制数字化系统怎样建?

手把手教你如何高效落地项目管理 | 一看既会

2022第十三届蓝桥杯第一场,b组c/c++题目和个人理解

用python画面积图_Python使用Plotly绘图工具,绘制面积图

学费计算器

pandas 如何将字符串映射为数字

牛客网刷题笔记之指针题(超详细解答过程)

Spring自定义注解实现redis缓存

Python并发编程之IO模型

【20210914】【机器/深度学习】模型评价指标:精确率、召回率、特异性、敏感性、F1-score、ROC曲线、AUC

猿创征文 | 常见的五款BI报表介绍

GID:旷视提出全方位的检测模型知识蒸馏 | CVPR 2021

JavaWeb(黑马程序员:数据库部分)

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号