求助0pt
查看原帖
求助0pt
779823
liuxinying886楼主2025/6/27 09:06
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,t,a[5010],s[5010],f[5010][5010],ansn=1e9;
signed main(){
	cin>>n>>t;
	if(n==1&&t==0){
		cin>>a[1];
		cout<<a[1]*a[1];
	}
	for(int i=1;i<=n;i++)cin>>a[i];
	for(int i=1;i<=n;i++)s[i]=s[i-1]+a[i];
	memset(f,0x3f,sizeof(f));
	//f[1][1]=s[1]*s[1];
	f[0][0]=0;
	for(int j=1;j<=n;j++){
		for(int i=j;i<=n;i++){
			for(int k=0;k<=j;k++){
				if((s[i]-s[j-1])*(s[i]-s[j-1])>=(s[j-1]-s[k-1])*(s[j-1]-s[k-1])){
					f[j][i]=min(f[k][j-1]+(s[i]-s[j-1])*(s[i]-s[j-1]),f[j][i]);
					//cout<<i<<" "<<j<<" "<<k<<" "<<(s[j-1]-s[k])*(s[j-1]-s[k])<<" "<<(s[i]-s[j-1])*(s[i]-s[j-1])<<endl;
				}
				//cout<<"A:"<<j<<" "<<i<<" "<<f[j][i]<<endl;
			}
			if(i==n){
				ansn=min(ansn,f[j][i]);
				//cout<<ansn<<endl;
			}
		}
	}
	cout<<ansn;
	return 0;
} 

想要先打一个部分分。。。可是明明样例和下载的数据都过了却是0pt,是输出有什么问题吗?

2025/6/27 09:06
加载中...