zoj 1563 Pearls 动态规划
来源:互联网 发布:学编程要多少钱 编辑:程序博客网 时间:2024/05/22 14:06
题目连接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1563
本题几个隐含条件:
1. 加入你决定了买 A 种钻石, 你不会买一部分 A 种, 其余买比 A 中高的品种, 这样花费一定比买全部a种多
2. 你如果买 A 中钻石, 前面第几种类的钻石一定在这,或在这儿之前都买完, 不会留到后面再买比 A 低级的钻石, 因为那样的花费一定高
程序说明:
1. dp[i] 表示买前 i 中钻石的最小花费, 状态转换方程dp[i]=min( b[i]*( a[i]-a[j]+10 ) + dp[j], k )
2. 0xfffffff为十六进制数,一个f是四位, 也就是有28位是1的二进制, int 型在vc++中是4个字节,共32位.,简而言之 就是一个很大的数, 用其他数也行
#include "iostream" #include "cstring" using namespace std; int main(){ int iCase; cin>>iCase; while(iCase--){ int i, j, m, n, cost; cin>>m; int *a = new int[m+1]; int *b = new int[m+1]; int *dp = new int[m+1]; a[0] = 0; dp[0] = 0; for(i = 1; i <= m; i++){ cin>>n>>b[i]; a[i] = a[i - 1] + n; } for(i = 1; i <= m; i++){ int min = 0xfffffff; for(j = 0; j < i; j++){ cost = (a[i] - a[j] + 10) * b[i] + dp[j]; min = min > cost ? cost: min; } dp[i] = min; } cout<<dp[m]<<endl; delete a, b, dp; } return 0; }
- zoj 1563 Pearls 动态规划
- Pearls(动态规划)
- 动态规划-Pearls
- ZOJ 1563 Pearls
- ZOJ 1563 Pearls(DP)
- zoj 1563 - Pearls
- POJ 1260-Pearls 动态规划
- 【POJ1260】Pearls (动态规划)
- poj 1260 Pearls 【动态规划】
- poj 1260 Pearls 动态规划
- HDU1300 Pearls (动态规划)
- HDU 5009 Paint Pearls (动态规划)
- hdu 5009 Paint Pearls (动态规划)
- HDU 1300 Pearls 动态规划 dp
- zoj 动态规划分类
- ZOJ 2972 动态规划
- acm pku 1260 Pearls的动态规划算法实现
- zoj 1196区间动态规划
- oracle数据库查看修改字符集问题
- 存储过程返回游标
- Yii - relations数据关联中的统计功能
- Activity生命周期图
- SQLite事务学习记录
- zoj 1563 Pearls 动态规划
- python for语句
- yii发表文章之添加&修改
- jquery ajax 实现批量删除
- Android各层推荐开发书籍及参考资料
- 两个数相乘,小数点后的位数没有限制
- Android中App安装位置详解
- Linq实现DataTable行转列效果
- Ext省市级联下拉框