关闭

一些史前dp

标签: dp
254人阅读 评论(0) 收藏 举报
分类:

dp态 所存的值一定是局部最优解 

多维dp 初始化和维度是对应的



1、   :背包

状态分析:(1)每个物品都有装和不装两个选择  (2)每个物品也都可以在任何时候装    

用传统枚举的思想,把所有能装的时候都做装和不装的选择。

   f[当前体积]     存    最大价值;

注:因物品没有先后装的顺序,所以无后效性。



2、   :最长子序列

状态分析:(1)每一个点都可以跟一个比他 大/小 的后面的数 (2)后面的数能跟的数也要知道

∴必须倒序;     用传统枚举的思想,倒序每个数都向后找。

   f[数的位置]     存    最长的长度

注:因每个数都匹配过,所以无后效性。



3、    :合并石子(有环)

状态分析:(1)有环只能枚举端点 (⊙﹏⊙)b    (2)每两堆石子都可以归并,枚举是必然了;   (3)想知 1、2、3的结果 必须知道 1、2 ;2、3;  想知1、2、3、4的结果必须知道1、2;2、3;3、4;1、2、3;2、3、4; 而1、2,;2、3;1、2、3都已知道    所以只需知道 2、3、4;3、4;   所以就会了;

   f[起始位置][终点位置]  存  最大分;

注:因新数的加入不影响前面的值,所以无后效。



4、   :敲砖块

状态分析:(1)敲一个转上面两块必须敲;    (2)可以划分出不相关,无后效性的段;       (3)因为f[i][j]只能在f[i-1][j]和f[i-1][j+1]之后敲,所以和左边的无关;

(4)于是想到从右往左取敲每一块,敲k次的最优值;

  f[层数][列数][一共敲几块]  存  最大分;

注:关键在于判断不关联的部分,即断点。


5、 :二进制

状态分析:其实对于数字来说,每一位都是相对独立的,在加减运算中,唯一影响到的只有进位标记。        ps:其实做这题的时候忽略了数字相加的特性:从个位开始,每个位都要等于两个加数的和。

于是分析(1) 一个数字中出现的1的个数影响后面的决策(有1的个数的要求);       (2)后效性分析:如果不进位,前几位相加都不相等,后几位无论如何也加不等了;前几位不是最小,最高位相当的情况下,总数不可能是最小了,而前几位的大小,对高位本身不构成影响。

(3)相等情况分析:对于用1个数、进位相同的情况,只需取一个最小值,这实际上也是在用加法运算的独立性。(4)由于每一串数字的1的个数都对后面答案有影响,所以再建立3维。

f[长度][第一个数几个1][第二个数几个1][第三个数几个1][进位]   存  当前长度,各个数位1的情况下的最小值 ;

注:后面位数的结果不影响前面位数的结果,所以无后效性。


















0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

【DP算法篇之初学】LIS\LCS\二维DP\带条件DP

最近参加2016华为软件精英挑战赛,题目也比较直接,就是求过定点的最短路。这题和以前练得不一样,感觉是不是要用DP(动态规划)。可是对于DP,算法,我还是啥都不懂,于是好好补补。 先是参考这篇博文...
  • woxiaohahaa
  • woxiaohahaa
  • 2016-03-14 20:57
  • 2190

android dp深度解析

我转载地方的连接:http://zhangkun716717-126-com.iteye.com/blog/1772696  当笔记记录一下  dip: device independent pix...
  • hunanqi
  • hunanqi
  • 2016-07-11 17:27
  • 654

Android中dp的概念

以前刚接触Android时就知道一个概念:由于android设备种类繁多,屏幕分辨率的ppi(pixels per inche,有时也叫dpi dots per inch)也各有不同,因此定义大小时如...
  • glorydream2015
  • glorydream2015
  • 2015-07-05 18:22
  • 835

状态压缩dp入门 (poj3254 Corn Fields)

题目链接:http://poj.org/problem?id=3254 题意:给出一个n行m列的草地,1表示肥沃,0表示贫瘠,现在要把一些牛放在肥沃的草地上,但是要求所有牛不能相邻,问你有多...
  • y990041769
  • y990041769
  • 2014-04-28 19:10
  • 19046

dp入门———列基本的状态和状态方程

1;了解一下DP的基本原理 我们要找到某个状态的最优解,然后在它的帮助下,找到下一个状态的最优解。 入门网站;http://www.360doc.com/content/13/0601/00/80...
  • zw1996
  • zw1996
  • 2016-08-08 20:54
  • 734

【数据结构与算法】 DP 动态规划 介绍

最近在看算法导论。 DP全称是dynamic programming,这里programming不是编程,是一个表格保存之前的结果。 DP 是一种编程思想,主要用于解决最优解类型的问题。 其思路是为了...
  • u010900754
  • u010900754
  • 2017-02-13 00:42
  • 829

安卓手机屏幕分辨率与dip、dp、sp的区别

以下文章知其然不知所其然,只能先看看,还有,现在的分辨率除了640x480这几种,还有720x1080这些,所有不一定就是 HVGA屏density=160;QVGA屏density=120WVGA屏...
  • cdnight
  • cdnight
  • 2015-06-10 10:03
  • 5793

树形DP总结,持续更新

树形DP总结,持续更新
  • Dacc123
  • Dacc123
  • 2016-01-03 18:09
  • 369

浅谈android 屏幕适配中 dp和sp的区别

欢迎转载 转载注明出处关于dp和sp的具体区别 看网上文章少有深入涉及 介于一次面试被问到:sp和dp的关系是什么?例如一个控件宽度为 15dp 或者 15sp 在大部分情况下是一样的,那什么情况下...
  • u010181592
  • u010181592
  • 2015-11-24 14:30
  • 6939

概率DP入门小结

说是概率DP,其实主要是求概率和期望的问题 说到DP总要有状态,每种状态可能有多种子状态 一般的DP是这样:在DP过程中,当前状态必然是由多个子状态中的最优的转移而来 所以一般的DP求的是最优的...
  • tomorrowtodie
  • tomorrowtodie
  • 2016-08-27 20:41
  • 536
    个人资料
    • 访问:54922次
    • 积分:4813
    • 等级:
    • 排名:第6952名
    • 原创:441篇
    • 转载:0篇
    • 译文:0篇
    • 评论:10条
    郑重声明
    如果要看题解,千万别找我的blog~~ 如果你是来看题解的 那你绝对想打我
    如何找到我
    QQ:2604761105 (加本蒟蒻涨RP!)
    文章分类
    最新评论