这就是玄学吗,dev和洛谷IDE结果不一样
查看原帖
这就是玄学吗,dev和洛谷IDE结果不一样
184525
lnhrl楼主2021/5/31 22:19

rt

#include<iostream>
#include<cstdio>
using namespace std;
int fmax[500][500],fmin[500][500],s[500],a[500],n;
void loading()
{
	
}
int sum(int l,int r)
{
	return s[r]-s[l-1];
}
void input()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
		a[i+n]=a[i];
		s[i]=s[i-1]+a[i];
	}
	for(int i=n+1;i<=2*n;i++)
	{
		s[i]=s[i-1]+a[i];	
	}
}
void dp()
{
	for(int x=1;x<n;x++)
	{
		for(int i=1,j=i+x;j<2*n;i++,j=i+x)
		{
			fmin[i][j]=0x3f3f3f;
			for(int k=i;k<j;k++)
			{
				fmax[i][j]=max(fmax[i][j],fmax[i][k]+fmax[k+1][j]+sum(i,j));
				fmin[i][j]=min(fmin[i][j],fmin[i][k]+fmin[k+1][j]+sum(i,j));
			}
		}
	}
}
void output()
{
	int min_=0x3f3f3f,max_;
	for(int i=1;i<=n;i++)
	{
		max_=max(max_,fmax[i][i+n-1]);
		min_=min(min_,fmin[i][i+n-1]);
	}
	cout<<min_<<endl<<max_;
}
int main()
{
	loading();
	input();
	dp();
	output();
	return 0;
}

改了之前输出没用max和min的错误后在机子上跑都能过了,交上去给我人弄傻了

样例洛谷输出为43 21926

机子上跑就是正解

真的不知道了,还请哪位大佬帮个忙吧

2021/5/31 22:19
加载中...