1 条题解
-
0
C++ :
#include<iostream> #include<algorithm> using namespace std; const int N = 105; int f[N][N]={0},a[N]; int main(){ int n; cin>>n; for (int i=0;i<n;i++) cin>>a[i]; for (int k=2;k<=n;k++) for (int i=0;i<n;i++) for (int j=1;j<k;j++) f[k][i]=max(f[k][i],f[j][i]+f[k-j][(i+j)%n] +a[i]*a[(i+j)%n]*a[(i+k)%n]); int ans=0; for (int i=0;i<n;i++) ans=max(ans,f[n][i]); cout<<ans<<endl; return 0; }
Pascal :
uses math; var n,i,j,k,ans:longint; a:array[0..1001]of longint; f:array[0..1001,0..1001]of longint; begin readln(n); for i:=0 to n-1 do read(a[i]); for i:=0 to n-1 do f[i,2]:=a[i]*a[(i+1) mod n]*a[(i+2) mod n]; for j:=3 to n do for i:=n-1 downto 0 do for k:=1 to j-1 do f[i,j]:=max(f[i,j],f[i,k]+f[(i+k) mod n,j-k]+a[i]*a[(i+j) mod n]*a[(i+k) mod n]); ans:=0; for i:=0 to n-1 do ans:=max(ans,f[i,n]); write(ans); end.
- 1
信息
- ID
- 1098
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者