第17行把k+1换成k试试
by huangboning @ 2024-02-20 14:19:18
哦不对
by huangboning @ 2024-02-20 14:20:28
@[huangboning](/user/478234) 换完我样例没过(
by wyf_sinon @ 2024-02-20 14:21:26
@[wyf_sinon](/user/540177) 第一个是a数组,有没有觉得开小了?
再然后状态转移哪那行,请问你的a[r]对吗
by CangerYumo @ 2024-02-20 14:44:30
@[wyf_sinon](/user/540177) 嗯,我感觉我们这三个人的等级与获奖十分相似……
by CangerYumo @ 2024-02-20 14:45:52
@[CangerYumo](/user/847286) 查出来了 应该是a[r+1] a[]确实开小了(
by wyf_sinon @ 2024-02-20 14:48:58
@[CangerYumo](/user/847286) 我还有一个特殊的荣誉 2023noip爆零( 二等直接晋级零等了bushi
by wyf_sinon @ 2024-02-20 14:50:25
@[wyf_sinon](/user/540177) 一个很奇怪的做法
```cpp
#include<stdio.h>
int pw[110];
int nxid[110];
int main()
{
int hdr = 0;
int n;
scanf("%d", &n);
for (int i = 0; i < n; i++)
{
scanf("%d", pw + i);
if (i == n - 1)nxid[i] = 0;
else nxid[i] = i + 1;
}
int phdr = n - 1;
int rem = n;
long long sc = 0;
while (rem > 1)
{
int minp = pw[hdr];
int lp = hdr;
int p = nxid[hdr];
int rmp = hdr;
int rmlp = phdr;
while (p != hdr)
{
if (minp > pw[p])
{
minp = pw[p];
rmp = p;
rmlp = lp;
}
lp = p;
p = nxid[lp];
}
sc += pw[lp] * pw[p] * pw[nxid[p]];
nxid[lp] = nxid[p];
if (p == hdr)
{
hdr = nxid[p];
phdr = lp;
}
rem--;
}
printf("%lld", sc);
}
```
也只过了样例和#10,当然这99.99%是错的
by unk_03 @ 2024-02-20 14:58:30
18行a[r]没加一
此贴结
by wyf_sinon @ 2024-02-20 15:00:07
改成这样:
```cpp
#include<bits/stdc++.h>
using namespace std;
const int N=210;
int n,ans;
int a[N],f[N*2][N*2];
signed main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++) { scanf("%d",&a[i]); a[i+n]=a[i]; f[i][i]=0; }
for(int len=2;len<=n+1;len++)// 阶段
{
for(int l=1;l+len-1<=n*2;l++)
{
int r=l+len-1;
for(int k=l+1;k+1<=r;k++)//决策
{
f[l][r]=max(f[l][k]+f[k][r]+a[l]*a[k]*a[r],f[l][r]);//第l到k颗 第k+1到r颗
}
}
}
for(int i=1;i<=n;i++) ans=max(ans,f[i][i+n]);
printf("%d",ans);
}
```
by huangboning @ 2024-02-20 16:43:02