之前用的是贪心来做,对于这组数据就出错了

10,10

5,15

10,23

看了一下别人的想法,用的是动态规划

传送门http://soj.me/1073

具体的题解移步这里http://wenku.baidu.com/view/27cbabdb50e2524de5187ed3.html

证明连续性是为了保证动态规划方程的成立,如果连续性成立那么就是说明了子问题对于父问题没有影响。

连续性的具体解释如下

假设存在i,i+1,i+2三种珍珠,如果想要用高等级的珍珠代替低等级的珍珠,要么用i+2的代替i+1和i的,要么就只用i+1的代替i的,

不可以仅仅用i+2的代替i的,如果这样就不能保证最优解。

1 #include <iostream>
 2 using namespace std;
 3 int ans[1010];
 4 int num[1010];
 5 int cl[1010];
 6 int main()
 7 {
 8         int t;
 9         cin>>t;
10         while(t--)
11         {
12                 int n;
13                 cin>>n;
14                 for(int i=1;i<=n;i++)
15                         cin>>num[i]>>cl[i];
16                 ans[0]=0;
17                 for(int i=1;i<=n;i++)
18                 {
19                         int min=99999999;
20                         for(int j=0;j<i;j++)
21                         {
22                                 int sum=0;
23                                 for(int k=j+1;k<=i;k++)
24                                         sum+=num[k];
25                                 if(ans[j]+(sum+10)*cl[i]<min)
26                                 {
27                                                 min=ans[j]+(sum+10)*cl[i];
28                                 }
29                         }
30                         ans[i]=min;
31                 }
32                 cout<<ans[n]<<endl;
33         }
34 }

转载于:https://www.cnblogs.com/congzc/archive/2011/05/02/2329976.html

1073. Pearls相关推荐

  1. 初学者acm的练习题指南

    上机练习题参考题 忘了在哪找的啦~~希望对大家有帮助呦 <!--[if !supportLists]-->1.    <!--[endif]-->Programming Bas ...

  2. sicily题目分类

    sicily题目分类 1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 11. ...

  3. [sicily]部分题目分类

    sicily题目分类 1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 11. ...

  4. Sicily 题目分类

    依照自己水平挑着做→ →~~ 1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 ...

  5. 编程题目分类(剪辑)

    1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 11. 模拟 12. 算术与代 ...

  6. CDOJ 1073 线段树 单点更新+区间查询 水题

    H - 秋实大哥与线段树 Time Limit:1000MS     Memory Limit:65535KB     64bit IO Format:%lld & %llu Submit S ...

  7. PAT甲级1073 Scientific Notation:[C++题解]字符串处理、科学计数法

    文章目录 题目分析 题目链接 题目分析 来源:acwing 分析:字符串处理. 思路: 把底数部分抠出来(用a表示);指数部分变成int型(用b表示)(指数部分代表小数点往哪移动,并且移动几位),比如 ...

  8. AC日记——Paint Pearls hdu 5009

    Paint Pearls 思路: 离散化+dp+剪枝: dp是个n方的做法: 重要就在剪枝: 如果一个长度为n的区间,有大于根号n种颜色,还不如一个一个涂: 来,上代码: #include <c ...

  9. Pearls POJ - 1260(区间记忆化搜索)

    题意: n件物品,给出数量和价格,(注意数量和价格都是升序给出的这个是能DP的关键),要买掉所以商品 对于每类物品,所需要的价格是(a[i]+10)*p[i] ,即要多买10件,也可以把价格低的物品合 ...

最新文章

  1. 07Bridge(桥)模式
  2. 内存数据库MemSQL ——基于内存,MVCC+哈希表、跳表
  3. 机器学习理论篇:机器学习的数学基础
  4. 01背包问题dp优化
  5. [css] 简述下你理解的优雅降级和渐进增强
  6. php判断有没有登录,请问thinkphp 怎么在每个方法里面判断是否登录?
  7. slim框架中防止crsf攻击时,用到的函数hash_equals
  8. TS Interface(接口)
  9. 揭开 Python 内存分配时的小秘密!
  10. SQL水平测试题目(一)
  11. Word2013 设置默认缩进
  12. 软件开发工作量/费用估算
  13. 奥运期间证券期货业网络与信息安全突发事件应急预案(一)
  14. SHA 加密是什么( sha1 和 MD5 的区别 )
  15. 常用谷歌地址和常用搜索引擎
  16. pythondocumentation_python官方文档
  17. java生成word排版_java生成word(文字和图片)
  18. android studio调用python_Android Studio调用python运行thensorflow模型--CLE方案实现
  19. ContextMenuStrip 菜单的使用技巧
  20. 网卡驱动学习五、hostapd 移植测试

热门文章

  1. 《WEB渗透一.信息收集》
  2. onClientClick 和 onClient 区别
  3. Spark 0.9的安装配置
  4. linux chmod命令参数及用法详解--文件文件夹权限设定命令
  5. 4段简短代码教你用Python读写Excel
  6. 速领,我给大家做了程序员专属红包封面~
  7. 面试官问我平时怎么看源码的,我把这篇文章甩给他了。
  8. 国内Java面试总是问StringBuffer,StringBuilder区别是啥?档次为什么这么低?
  9. “钉钉打卡神器”开发者被判五年半!
  10. 阿里数据人标配的高端鼠标垫,我的粉丝每人包邮送一块