不然很多方法需要spj。。。
本人就被字典序卡成60分
by Roviky @ 2019-11-13 21:47:23
## 哪位大佬看一下问题呀
## 总是输出不出来
```cpp
#include<iostream>
#include<cstdio>
#include<stdio.h>
#include<algorithm>
#include<cmath>
#include<vector>
#include<queue>
#include<stack>
#include<map>
#include<cstring>
#include<string.h>
#include<iomanip>
int n,a[40],root[40][40];
long long dp[40][40];
long long dfs(int l,int r)
{
if(l>r)return 1;
if(dp[l][r])return dp[l][r];
long long maxn=0;
for(int i=l;i<=r;i++)
{
long long t=dfs(l,i-1)*dfs(i+1,r)+a[i];
if(t>maxn)
{
maxn=t;
root[l][r]=i;
}
}
return dp[l][r]=maxn;
}
void dg(int l,int r)
{
if(l>r)return;
std::cout<<root[l][r]<<" ";
dg(l,root[l][r]-1);
dg(root[l][r]+1,r);
}
int main()
{
std::scanf("%d",&n);
for(int i=1;i<=n;i++)
{
std::scanf("%d",a[i]);
dp[i][i]=a[i];
root[i][i]=i;
}
std::cout<<dfs(1,n)<<"\n";
dg(1,n);
return 0;
}
```
by BotTleR @ 2020-02-21 13:17:39
谢谢大佬提醒
~~我就知道讨论区一定有和我一样的人~~
by 尹昱钦 @ 2020-02-23 00:34:00
我也是.....
~~可是不知道怎么改~~
by lzqy_ @ 2020-03-15 12:14:24
感谢大佬
by code_hunter @ 2020-04-17 12:01:28
建议改题目.
@[CCF_NOI](/user/19)
by qjyzLfy @ 2020-04-19 20:49:21