为什么同样的代码,题目中n<=300,我数组开的300时10pts,开1000时100pts
附代码:
#include<bits/stdc++.h>
using namespace std;
long long n,a[301],f[301][301],sum[301];
int main(){
cin>>n;
for (int i=1;i<=n;i++){
cin>>a[i];
sum[i]=sum[i-1]+a[i];
}
for (int i=n;i>=1;i--){
f[i][i]=0;
for (int j=i+1;j<=n;j++){
long long v=f[i][i]+f[i+1][j]+sum[j]-sum[i-1];
for (int k=i;k<j;k++) v=min(f[i][k]+f[k+1][i]+sum[j]-sum[i-1],v);
f[i][j]=v;
}
}
cout<<f[1][n];
}
上面是10pts代码,我把301改成1001就AC了,why?