求解,为何CE

换了个oj试着交了一次,AC了,但是在这里是CE的
求神犇指点。。。
```c++
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int n,v;
int tre[35],rot[35][35],dp[35][35];
bool vis[35][35];

void dfs(int l,int r){
if(l>r)return ;
cout<<rot[l][r]<<' ';
dfs(l,rot[l][r]-1);
dfs(rot[l][r]+1,r);
}

int main(){
cin>>n;
for(int i=1;i<=n;++i){
cin>>tre[i];
}
for(int i=n;i>=0;--i){
for(int j=0;j<=n;++j){
if(i>j)dp[i][j]=1;
else if(i==j)dp[i][j]=tre[i],rot[i][j]=i;
else if(i<j){
for(int k=i;k<=j;++k){
int dpf=tre[k]+dp[i][k-1]*dp[k+1][j];
if(dpf>dp[i][j]){
dp[i][j]=dpf;
rot[i][j]=k;
}
}

}
}
}
cout<<dp[1][n]<<endl;
dfs(1,n);
return 0;
}
```

1 条评论

  • 1

信息

ID
1100
难度
2
分类
动态规划 | 树形DP 点击显示
标签
递交数
4713
已通过
2632
通过率
56%
被复制
19
上传者