2 条题解
-
0
#include<bits/stdc++.h> using namespace std; struct node{int l,r;}a[201]; int f[501][501]; int main() { int n;scanf("%d", &n); for(int i=1;i<=n;i++)scanf("%d%d", &a[i].l, &a[i].r); memset(f, 63, sizeof(f)); for(int i=1;i<=n;i++) f[i][i]=0; for(int L=2;L<=n;L++) for(int st=1;st<=n-L+1;st++) { int ed=st+L-1; for(int k=st;k<ed;k++) f[st][ed] = min(f[st][ed], f[st][k] + f[k+1][ed] + a[st].l * a[k].r * a[ed].r); //+a[st].l*a[k+1].l*a[ed].r } printf("%d\n", f[1][n]); return 0; } -
0
#include<bits/stdc++.h> using namespace std; struct node{int l,r;}a[201]; int f[501][501]; int main() { int n;scanf("%d",&n); for(int i=1;i<=n;i++)scanf("%d%d",&a[i].l,&a[i].r); memset(f,63,sizeof(f)); for(int i=1;i<=n;i++) f[i][i]=0; for(int L=2;L<=n;L++) for(int st=1;st<=n-L+1;st++) { int ed=st+L-1; for(int k=st;k<ed;k++) f[st][ed]=min(f[st][ed],f[st][k]+f[k+1][ed]+a[st].l*a[k].r*a[ed].r); //+a[st].l*a[k+1].l*a[ed].r } printf("%d\n",f[1][n]); return 0; }
- 1
信息
- ID
- 768
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 3
- 标签
- 递交数
- 51
- 已通过
- 30
- 上传者