CF玄学错误
查看原帖
CF玄学错误
368346
小明小红楼主2023/10/3 20:05

就是这可爱代码,我本地测样例能过,但CF上跑输出奇妙的东西,为什么??? 这是提交寄录

#include<bits/stdc++.h>
using namespace std;
#define ll int 
ll n,T,k,z,s[100009];
ll dp[5][100009][2],ans=-1;//消耗x次向左,位置在y
int main()
{
	cin>>T;
	while(T--)
	{
		ans=0;
		cin>>n>>k>>z;
		for(ll i=1;i<=n;i++)
		{
			cin>>s[i];
			for(int j=0;j<=5;++j)dp[j][i][1] = dp[j][i][0] = 0;
		}
		dp[0][1][0] = s[1];
		for(int i=1;i<=k+1;++i)dp[0][i][0] = dp[0][i-1][0] + s[i]; ans = dp[0][k+1][0];	
		for(int i=1;i<=z;++i)
		{
			for(int j=1;j<=k-i*2+1;j++)
			{
				dp[i][j][1] = dp[i-1][j+1][0]+s[j];
				dp[i][j][0] =max(dp[i][j-1][0]+s[j],dp[i][j-1][1]+s[j]),
				ans=max(ans,max(dp[i][j][1],dp[i][j][0]));	
			}	
		}
		cout<<ans<<endl;
	}
	return 0;
}
2023/10/3 20:05
加载中...