请求加强数据
  • 板块P1725 琪露诺
  • 楼主_qingshu_
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/11/27 18:42
  • 上次更新2023/11/27 20:49:32
查看原帖
请求加强数据
602803
_qingshu_楼主2023/11/27 18:42

题目中给定 NN 的范围最大在 2⋅1052 \cdot 10^5 ,而 R−LR-L 的最大值应该也在 2⋅1052 \cdot 10^5 。

但是下面这一份时间复杂度最劣 N2N^2 的代码可以过这道题。

#include<bits/stdc++.h>
using namespace std;
int n,l,r;
int a[200100];
long long dp[200100];
int main(){
	cin>>n>>l>>r;
	for(int i=0;i<=n;i++){
		cin>>a[i];
	}
	memset(dp,-0x3f,sizeof dp);
	dp[0]=0;
	for(int i=0;i<=n;i++){
		for(int j=l;j<=r;j++){
			int now=i+j;
			if(now>n+1){
				now=n+1;
			}
			dp[now]=max(dp[now],dp[i]+a[i]);
		}
	}
	cout<<dp[n+1];
}

如果时间复杂的计算不对请大佬指出。

2023/11/27 18:42
加载中...