动态规划专项intermediate:UVa 10304
来源:互联网 发布:mac电脑怎样退出程序 编辑:程序博客网 时间:2024/06/08 04:22
这道题lrj的书上给出了相当详细的解释,为了图省事就直接用记忆化搜索O(n^3)的复杂度写了,极度之搓……最后4s+极度水的过了……
#include <iostream>#include <fstream>#include <cstring>#include <cstdio>using namespace std;#define M 300int dp[M][M];int f[M];int s[M];int n;int dfs(int i,int j){ if(dp[i][j]!=-1) return dp[i][j]; if(i==j) { if(i==1&&j==n) return 0; else return dp[i][j]=f[i]; } int &ans=dp[i][j]; int tmp=min(dfs(i+1,j),dfs(i,j-1)); for(int k=i+1;k<j;k++) tmp=min(tmp,dfs(i,k-1)+dfs(k+1,j)); if(i!=1||j!=n) ans=tmp+s[j]-s[i-1]; else ans=tmp; return ans;}int main(){ freopen("in.txt","r",stdin); while(cin>>n) { s[0]=0; for(int i=1;i<=n;i++) { cin>>f[i]; s[i]=s[i-1]+f[i]; } memset(dp,-1,sizeof(dp)); cout<<dfs(1,n)<<endl; } return 0;}
- 动态规划专项intermediate:UVa 10304
- 动态规划专项intermediate:UVa 10271
- 动态规划专项intermediate:UVa 11600
- 动态规划专项intermediate:UVa 10934
- 动态规划专项intermediate:UVa 10981
- 动态规划专项intermediate:UVa 12002
- 动态规划专项intermediate:UVa 10688
- 动态规划专项intermediate:UVa 11766
- 动态规划专项intermediate:UVa 11400
- 动态规划专项intermediate:UVa 10599
- 动态规划专项intermediate:LA 4015
- 动态规划专项intermediate:LA 4490
- 动态规划专项intermediate:LA 4327
- 动态规划intermediate:UVa 11456
- 动态规划intermediate:UVa 10239
- 动态规划intermediate:UVa 10604
- 动态规划intermediate:LA 4945
- 动态规划intermediate:LA 6042
- AIX SCSI Driver 编程实质
- 转 数据库进阶系列之一:漫谈数据库索引
- ubuntu8.04版本tftp的安装
- QBoxLayout
- 啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
- 动态规划专项intermediate:UVa 10304
- Ubuntu下开启SSH服务
- 关于JPA同过javabean反射到数据库不能生产对应表且不报错的原因分析
- 待解决的题
- 搜索引擎蜘蛛算法与蜘蛛程序构架
- MATLAB
- Android的单位值计算
- 无线路由器的网关显示WAN口未连接(解)
- win7 下无法删除文件