codevs 1048 合并石子
来源:互联网 发布:南京行知小学宿舍 编辑:程序博客网 时间:2024/06/06 15:59
题目描述
有n堆石子排成一列,每堆石子有一个重量w[i], 每次合并可以合并相邻的两堆石子,一次合并的代价为两堆石子的重量和w[i]+w[i+1]。问安排怎样的合并顺序,能够使得总合并代价达到最小。
思路
区间DP裸题,很水的,直接上代码。
代码
#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>#include<cmath>#include<vector>#include<queue>using namespace std;const int N=100+5;const int INF=0x7f7f7f7f;int a[N],dp[N][N],cost[N],n;int min(int x,int y){ if (x<=y) return x; else return y;}int main(){ scanf("%d",&n); memset(dp,INF,sizeof(dp)); for (int i=1;i<=n;i++) { scanf("%d",&a[i]); cost[i]=cost[i-1]+a[i]; dp[i][i]=0; } for (int i=n-1;i>=1;i--) for (int j=i+1;j<=n;j++) for (int k=i;k<=j-1;k++) dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]+cost[j]-cost[i-1]); printf("%d\n",dp[1][n]); return 0;}
阅读全文
2 0
- codevs 1048 合并石子
- Codevs 1048 石子归并
- Codevs 1048 石子归并
- 【codevs 1048】石子归并
- 【codevs 1048】石子归并
- codevs 1048 石子归并
- CODEVS 1048石子归并
- CODEVS 1048 石子归并
- codevs 1048 石子归并
- codevs 1048 石子归并 挖个坑
- 石子归并问题(codevs 1048)
- Codevs 1048 石子归并 区间DP
- wiki 1048 石子合并问题
- 石子-石子合并
- 石子合并
- 石子合并
- 石子合并
- 石子合并
- 我的第一个hbuilder项目
- 关于mysql中select子查询
- MySQL 查询某字段的多条结果展示成按逗号隔开
- 百度前端面试
- ssh 配置互信失败可能遇到的问题。
- codevs 1048 合并石子
- 图像旋转后的还原图像坐标
- 我的第一个五子棋游戏
- 日期计算器
- oracle循环执行sql
- 远程连接MySQL(MariaDB)数据库
- 浅析ThreadPoolExecutor
- 极光推送轻松集成
- 排序算法·快速排序