51nod 1021 石子归并
2017-04-21 23:10
253 查看
基础dp题
联想上学期学过的加括号问题/矩阵连乘问题
其实就是对一个大问题,找一个分割,使得这种分割满足最优子结构
没看四边形优化的解,就这样吧先。。这代码还多数是copy别人的,边写边学吧。
//@auther zhou
//@Number 201408070203
//@start time:
//@finish time:
/*@此处注意:
*/
/* 测试数据
*/
#include<iostream>
#include<cstring>
#include<vector>
#include<cmath>
#include<algorithm>
using namespace std;
#define inf 1e9
int main(){
int n;
cin>>n;
// vector<int > a;
// vector<int> total;
int a[105]={0};
int total[105]={0};
int temp,ans=0;
for(int i=1;i<=n;i++){
cin>>temp;
ans+=temp;
// total.push_back(ans);
// a.push_back(temp);
a[i]=temp;
total[i]=ans;
}
// for(int i=1;i<=n;i++){
// cout<<a[i]<< " "<<total[i]<<endl;
// }
int dp[105][105];
memset(dp,inf,sizeof(dp));
for(int i=1;i<=n+1;i++)
dp[i][i]=0;
int j=0;
for(int width=2;width<=n;width++){//width
for(int i=1;i<=n-width+1;i++){//start
j=i+width-1;//end
dp[i][j]=inf;
for(int k=i;k<=j-1;k++){//loop cut index
temp=total[j]-total[i-1];
dp[i][j]=min(dp[i][k]+dp[k+1][j]+temp,dp[i][j]);
}
}
}
cout<<dp[1]
;
return 0;
}
联想上学期学过的加括号问题/矩阵连乘问题
其实就是对一个大问题,找一个分割,使得这种分割满足最优子结构
没看四边形优化的解,就这样吧先。。这代码还多数是copy别人的,边写边学吧。
//@auther zhou
//@Number 201408070203
//@start time:
//@finish time:
/*@此处注意:
*/
/* 测试数据
*/
#include<iostream>
#include<cstring>
#include<vector>
#include<cmath>
#include<algorithm>
using namespace std;
#define inf 1e9
int main(){
int n;
cin>>n;
// vector<int > a;
// vector<int> total;
int a[105]={0};
int total[105]={0};
int temp,ans=0;
for(int i=1;i<=n;i++){
cin>>temp;
ans+=temp;
// total.push_back(ans);
// a.push_back(temp);
a[i]=temp;
total[i]=ans;
}
// for(int i=1;i<=n;i++){
// cout<<a[i]<< " "<<total[i]<<endl;
// }
int dp[105][105];
memset(dp,inf,sizeof(dp));
for(int i=1;i<=n+1;i++)
dp[i][i]=0;
int j=0;
for(int width=2;width<=n;width++){//width
for(int i=1;i<=n-width+1;i++){//start
j=i+width-1;//end
dp[i][j]=inf;
for(int k=i;k<=j-1;k++){//loop cut index
temp=total[j]-total[i-1];
dp[i][j]=min(dp[i][k]+dp[k+1][j]+temp,dp[i][j]);
}
}
}
cout<<dp[1]
;
return 0;
}
相关文章推荐
- 51Nod 1021 石子归并
- 51nod 1021 石子归并 (动态规划 简单代码)
- 51nod 1021 石子归并(基础dp)
- 51nod 1021 石子归并(区间dp)
- 经典问题二.【区间dp】石子归并 51nod 1021
- 【51nod】1021 石子归并
- 51nod 1021 石子归并(dp-矩阵连乘)
- 51nod 1021 石子归并
- 51Nod - 1021 石子归并 区间DP入门-分析
- AC日记——石子归并 51nod 1021
- 【51Nod】1021 - 石子归并(区间dp & 四边形不等式优化)
- 51NOD 1021 石子归并
- 51Nod - 1021 石子归并(经典dp)
- 51nod 1021 石子归并 -动态规划
- 51Nod-1021-石子归并
- 51Nod - 1021石子归并(区间DP)
- 1021 石子归并-51Nod
- 51Nod 1021 石子归并v1
- 51nod 1021 石子归并(动态规划)
- 51nod 1021 石子归并