来源:自学PHP网 时间:2015-04-14 14:51 作者: 阅读:次
[导读] 区域动归的问题 includestdio h includestring h includeiostream includealgorithm using namespace std; int n; int a[51]; int vis[51][51]; int num[51][51];...
区域动归的问题
#include<stdio.h> #include<string.h> #include<iostream> #include<algorithm> using namespace std; int n; int a[51]; int vis[51][51]; int num[51][51]; int dll(int l,int r) { int i; if(num[l][r]!=-1)return num[l][r]; if(l>r) { return 1; } if(l==r) { num[l][r]=a[l]; vis[l][r]=l; return a[l]; } int as=0; for(i=l;i<=r;i++) { int t=0; t=dll(l,i-1)*dll(i+1,r)+a[i]; if(as<t) { vis[l][r]=i; as=t; } } num[l][r]=as; return as; } int leap; void dos(int l,int r) { if(vis[l][r]==-1)return ; if(leap==0) { printf("%d",vis[l][r]); } else { printf(" %d",vis[l][r]); } leap++; if(l<r) { dos(l,vis[l][r]-1); dos(vis[l][r]+1,r); } } int main() { int i; while(~scanf("%d",&n)) { memset(num,-1,sizeof(num)); memset(vis,-1,sizeof(vis)); for(i=1;i<=n;i++)scanf("%d",&a[i]); if(dll(1,n)); cout<<num[1][n]<<endl; leap=0; dos(1,n); cout<<endl; } }
|
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com