dp
This is bill
这个作者很懒,什么都没留下…
展开
-
【DP专辑】ACM动态规划总结
转载请注明出处,谢谢。 http://blog.csdn.net/cc_again?viewmode=list ---------- Accagain 2014年5月15日动态规划一直是ACM竞赛中的重点,同时又是难点,因为该算法时间效率高,代码量少,多元性强,主要考察思维能力、建模抽象能力、灵活度。本人动态规划博客地址:http://blog.csd转载 2016-03-18 11:10:12 · 6962 阅读 · 1 评论 -
树塔问题 dp
求出一个三角形树塔,加起来和最大的路径#include <iostream>#include <stdio.h>#include <cstring>#include <vector>#include <cmath>#include <algorithm>#include <set>#include <cassert>#include <time.h>#include <queue>原创 2017-01-03 15:28:38 · 988 阅读 · 0 评论 -
poj 1050 最大子矩阵和
一、思路最大子矩阵和的方法和最大字段和一样先单独对每行求最大字段和(此时,子矩阵的行为1,就是最大字段和了)然后,把第i行后的各行对应列的元素加到第i行的对应列元素,每加一行,就求一次最大字段和,这样就把子矩阵的多行压缩为一行了,一行了就是最大字段和了也可以这样理解:a11 a12 a13 a21 a22 a23 a31 a32 a33如图,先求第一行最大子段和,再求第一行跟第二行合原创 2016-03-18 18:31:24 · 900 阅读 · 0 评论 -
回文子串(模板)Manacher O(n)算法
一、问题描述回文子串和回文子序列不同: 子串,一定要连续 子序列,不一定连续其实最长回文子串是可以转换成LCS来做的,具体方法就是: 将原串生成反向串,然后用dp求原串和反向串的LCS但是这样缺点也很明显的是O(n*n)的复杂度,即使优化到:滚动数组+下标找反向串,也不能从根本上解决这个算法的低效。如果想在 O(n) 时间内解决回文子串问题呢?答案就是Manacher算法,用一句话原创 2016-04-06 16:44:55 · 1049 阅读 · 0 评论 -
poj 3974 最长回文子串
一、题目大意一道裸的最长回文子串题目,既然是子串,就是说一定要连续,而不是子序列。本题目的难点在 Time Limit: 15000MS,要在15s内跑出 n=1000000 的结果,必然只能O(NlogN)的后缀数组的和O(N)的Manacher。当然这里我用的是Manacher算法,这个算法很巧妙,但是也比较局限,只能是最长回文子串能用。详细的算法思想见,Manacher算法模板。二、AC co原创 2016-04-06 16:31:39 · 1276 阅读 · 0 评论 -
poj 1159 最长公共子序列+滚动数组
一、题目大意一个字符串,可在任意位置添加字符,最少再添加几个字符,可以使这个字符串成为回文字符串。设原序列S的逆序列为S’ ,则这道题目的关键在于, 最少需要补充的字母数 = 原序列S的长度 — S和S’的最长公共子串长度于是看似一个回文字串,变成了LCS。但是关键是这个不能用裸的LCS搞定,因为5000的int二维数组,大约100M,肯定爆64M的内存。要用到滚动数组,思路如下: 因为原创 2016-04-05 00:13:35 · 1772 阅读 · 0 评论 -
最长公共子序列 LCS(模板) poj 1458
一、AC code(模板)#include <iostream>#include <stdio.h>#include <cstring>#include <vector>#include <cmath>#include <algorithm>#include <set>#include <cassert>#include <time.h>#include <queue>#incl原创 2016-04-04 13:44:40 · 1317 阅读 · 0 评论 -
poj 1125 Floyd算法
一、题目大意可以说理解题目比解题难~~我用的Floyd,Floyd也可以算是dp的一种。题目可能有多组测试数据,每个测试数据的第一行为经纪人数量N(当N=0时,输入数据结束),然后接下来N行描述第i(1<=i<=N)个经纪人与其他经纪人的关系。每行开头数字M为该行对应的经纪人有多少个经纪人朋友(该节点的出度,可以为0),然后紧接着M对整数,每对整数表示成a,b,则表明该经纪人向第a个经纪人传递信息需原创 2016-03-20 11:34:21 · 813 阅读 · 1 评论 -
poj 1083
一、题目大意一层里面有400个房间,北边和南边各有200个房间,要从一个房间里面把一张桌子移动到另一个房间(特别注意有可能有s比t大的情况,我因为这个WA了一次),需要占用这两个房间之间的所有走廊(包括这两个房间前面的),每移动一个桌子需要10分钟,给出需要移动的桌子的数据(从哪移动到哪),要求计算出最少需要多少分钟才能把所有桌子移动完。另外注意: 房间1和2前面是同一个走廊,所以从1移动到2只原创 2016-03-19 21:26:22 · 768 阅读 · 1 评论 -
POJ 动态规划题目列表
声明:1.这份列表当然不是我原创的,从文库里下载了一份,放到这里便于自己浏览和查找题目。※最近更新:Poj斜率优化题目1180,2018,3709 列表一:经典题目题号:容易: 1018, 1050, 1083, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 1189, 1191,1208, 1276, 1322转载 2016-03-18 15:43:16 · 1156 阅读 · 0 评论 -
poj 1018 dp
一、题目大意一个系统由n个设备组成,每个设备可以由mi个厂商提供,每个设备你可以选一个厂商,在你选定的厂商的设备中,b(带宽)是所选设备中b值最小的,类似于短板效应,p是所有价格之和,要求b/p最小。题目给出的用例是:1 3 3 100 25 150 35 80 25 2 120 80 155 40 2 100 100 120 110这样说,应该是150 35 155 40 120 110原创 2016-03-18 15:09:11 · 880 阅读 · 0 评论