15145641

随笔分类 -  dp

1 2 下一页
基础dp
摘要:队友的建议,让我去学一学kuangbin的基础dp,在这里小小的整理总结一下吧。 首先我感觉自己还远远不够称为一个dp选手,一是这些题目还远不够,二是定义状态的经验不足。不过这些题目让我在一定程度上加深了对dp的理解,但要想搞好dp,还需要多多练习啊。 HDU - 1024 开场高能 给出一个数列, 阅读全文
posted @ 2017-01-13 22:43 icode-xiaohu 阅读(311) 评论(0) 推荐(0)
codeforce Gym 101102A Coins (01背包变形)
摘要:01背包变形,注意dp过程的时候就需要取膜,否则会出错。 代码如下: 阅读全文
posted @ 2016-10-06 17:37 icode-xiaohu 阅读(183) 评论(0) 推荐(0)
HDU 5898 odd-even number(2016沈阳网络选拔赛 数位DP)
摘要:定义DP[pos][pre][odd][even],pos代表当前数位,pre代表前一位的数值,odd代表到前一位连续的奇数个数,even代表到前一位连续偶数个数。 odd和even肯定至少有一个为0,而且最后的判断只和odd与even的奇偶性有关,能看出这个状态是可以被缩小到很小的,但是DP菜鸟我 阅读全文
posted @ 2016-10-06 12:48 icode-xiaohu 阅读(222) 评论(0) 推荐(0)
UVA - 11400 Lighting System Design (区间DP)
摘要:这个问题有两个点需要注意: 1、 对于一种灯泡,要么全换,要么全不换。 证明: 设一种灯泡单价为p1,电池价格为k1,共需要L个,若把L1个灯泡换成单价为p2,电池为k2的灯泡,产生的总花费为p1*L1+k1 + p2*(L-L1)+k2 (1)。全不换为p1*L+k1 (2),全换为p2*L+k2 阅读全文
posted @ 2016-08-29 10:49 icode-xiaohu 阅读(204) 评论(0) 推荐(0)
UVA - 12563 Jin Ge Jin Qu hao (01背包变形)
摘要:此题应该注意两个点,首先背包容量应该缩减为t-1,因为最长的歌不超过三分钟,而劲歌金曲有678s,所以肯定要留出这个时间来。其次注意优先级,保证唱的歌曲数目最多,在此前提下尽可能的延长时间。 处理方法:开创结构体,在歌曲数目相等的时候,选取最长时间。 注意:注意t的大小,t完全没有必要计算那么大的数 阅读全文
posted @ 2016-08-28 13:15 icode-xiaohu 阅读(190) 评论(0) 推荐(0)
UVA - 437 The Tower of Babylon(dp-最长递增子序列)
摘要:每一个长方形都有六种放置形态,其实可以是三种,但是判断有点麻烦直接用六种了,然后按照底面积给这些形态排序,排序后就完全变成了LIS的问题。代码如下: 阅读全文
posted @ 2016-08-28 10:55 icode-xiaohu 阅读(157) 评论(0) 推荐(0)
World Finals 2003 UVA - 1025 A Spy in the Metro(动态规划)
摘要:分析:时间是一个天然的序,这个题目中应该决策的只有时间和车站,使用dp[i][j]表示到达i时间,j车站在地上已经等待的最小时间,决策方式有三种,第一种:等待一秒钟转移到dp[i+1][j]的状态,代价为1。第二种:如果可以则向右上车,转移到dp[i+t][j+1],无代价,t为列车行驶时间。第三种 阅读全文
posted @ 2016-08-27 20:45 icode-xiaohu 阅读(176) 评论(0) 推荐(0)
UVALive 4031 Integer Transmission(贪心 + DP)
摘要:分析:求出最大值和最小值比较简单,使用贪心法,求最小值的时候我们让所有的0尽可能的向后延迟就可以了,求最大值则相反。 关键在于求出可以组合出的数字个数。 这就是组合数学版的dp了,我们让dp[i][j]表示当前i个0,和前j个1被接收后所能形成的数字个数,初始条件为dp[0][0] = 1; 决策有 阅读全文
posted @ 2016-08-27 16:39 icode-xiaohu 阅读(252) 评论(0) 推荐(0)
UVA - 1347 Tour(DP + 双调旅行商问题)
摘要:题意:给出按照x坐标排序的n个点,让我们求出从最左端点到最右短点然后再回来,并且经过所有点且只经过一次的最短路径。 分析:这个题目刘汝佳的算法书上也有详解(就在基础dp那一段),具体思路如下:按照题目的描述比较难考虑,不如把这个问题想成两个人,分别从最左端走到最右端并且不走到重复的点所需要的最小路程 阅读全文
posted @ 2016-08-23 16:33 icode-xiaohu 阅读(201) 评论(0) 推荐(0)
CodeForces 687C The Values You Can Make(动态规划)
摘要:这个也可以说是一个01背包了,里面也有一些集合的思想在里面,首先dp方程,dp[i][j]代表着当前数值为i,j能否被构成,如果dp[i][j] = 1,那么dp[i+m][j] 和 dp[i+m][j+m] = 1,所以转移方程就写出来了,但是注意我们只能从后向前转移,也就是说我们一定要用选上一个 阅读全文
posted @ 2016-08-15 16:56 icode-xiaohu 阅读(512) 评论(0) 推荐(0)
UVALive 2522 Chocolate(概率DP)
摘要:思路:定义DP方程dp[i][j]标记选到第i个巧克力的时候,桌面上还剩下j个巧克力,状态转移有两个方向,dp[i-1][j-1],dp[i-1]lj+1],分别表示桌面上多了一个和消了一个,乘上需要的概率即可。 注意:这个题目的输入量很大,所以需要优化,首先是n+m是奇数的时候,或者m > c的时 阅读全文
posted @ 2016-07-31 16:05 icode-xiaohu 阅读(242) 评论(0) 推荐(0)
UVALive 2324 Human Gene Functions(动态规划)
摘要:题意:求出将两个字符串改成一样长度所能形成最大的相似度。 思路:这个可以说是编辑距离的一个变形,编辑距离最终状态时要两个字符串完全一致,这个就是要求长度一样,而且这个只允许插入“—”这一个字符。模仿编辑距离定义状态,dp[i][j]表示将第一个字符串的前i个字符与第二个字符串的前j个字符变为相同长度 阅读全文
posted @ 2016-07-31 15:47 icode-xiaohu 阅读(166) 评论(0) 推荐(0)
UVALive 2147 Push!!(队列实现DP)
摘要:就我的理解来说这个题,本质上是一个DP题,不应该说是搜索,因为我的做法是把表格中所有的数据都找到,使用队列暴力来遍历出所有状态,因为题目中的数据范围小,所有耗时也小。 首先分析箱子是一个被动物体,人是主动物体,箱子的移动取决于人的移动,所以在bfs中只需要让人去移动,进而带动箱子就可以了。我们使用d 阅读全文
posted @ 2016-07-20 21:41 icode-xiaohu 阅读(237) 评论(0) 推荐(0)
完全背包(内含不能恰好装满的情况)
摘要:这是我们15级新生热身赛的题目,当时很少新生做出来,不仅因为当时还没有学dp,也因为这不是小白完全背包,这里给出了一个值m,让我们选取一定的物品让他们的价值>=m,让我们求最小值花费。 首先明确m并不能作为背包容量,因为我们的价值可能大于m,其实让我们求最小花费,我们无疑在一开始就要把dp初始化为无 阅读全文
posted @ 2016-05-30 18:15 icode-xiaohu 阅读(735) 评论(0) 推荐(0)
多重背包并判断能否装满(附01完全背包思想)
摘要:这是我们作业上的一道题,也是我认为挺好玩的一道题,是裸的多重背包,不过它只是单纯的让我判断能否装满。我第一次交TLE了,我以为作业题的数据不会很强,干脆偷了个懒枚举了下选的个数,没有二进制优化直接超时了,低估出题老师了~所以我又加上了二进制优化,经历一番坎坷才过。 关于这个背包的知识,我想多说一点, 阅读全文
posted @ 2016-05-30 13:01 icode-xiaohu 阅读(1344) 评论(0) 推荐(0)
HDU 1885 Key Task(BFS + 状态压缩)
摘要:做这个题的时候我给想简单了,还以为是个基础的广搜,后来发现搜索无法完成,因为vis的标记已经不能再使用了,因为一旦标记了,同一个结点不能走两次,而题目中有的时候有些点必须要走两次,甚至多次. 我就无从下手了,赛后看了题解才知道,每个点都有16个状态,用状态压缩可以来保存每个点的钥匙状态,开一个三维的 阅读全文
posted @ 2016-05-03 10:55 icode-xiaohu 阅读(248) 评论(0) 推荐(0)
HDU 1882 Strange Billboard(状态压缩+转置优化)
摘要:状态压缩,我们枚举第一行的所有状态,然后根据第一行去转变下面的行,枚举或者深搜直到最后最后一行,可以判断是不是所有的1都可以全部转换为0,记录所有的解,输出最小的一个就可以. 这里有一个很重要的优化,就是当n比m大的,转置这个矩阵,如果不加这个在G++的情况下会超时,C++900Ms多AC.代码及注 阅读全文
posted @ 2016-05-02 17:15 icode-xiaohu 阅读(282) 评论(2) 推荐(0)
HDU 1074 Doing Homework(状态压缩)
摘要:之前做过一个题,是在学贪心的时候做的,所以这个题就想当然的跑偏了,当看到N是<=16 的时候,状态压缩就理所当然了 阅读全文
posted @ 2016-04-30 22:28 icode-xiaohu 阅读(161) 评论(0) 推荐(0)
HDU 1260 Tickets(基础dp)
摘要:一开始我对这个题的题意理解有问题,居然超时了,我以为是区间dp,没想到是个水dp,我泪奔了.... 阅读全文
posted @ 2016-04-30 20:35 icode-xiaohu 阅读(156) 评论(0) 推荐(0)
HDU 1176 免费馅饼(数塔dp)
摘要:一开始被吓到了,后来再仔细一读发现就是一个数塔,没有那么复杂 阅读全文
posted @ 2016-04-30 20:33 icode-xiaohu 阅读(205) 评论(0) 推荐(0)

1 2 下一页