随笔分类 - DP--基础DP
摘要:LCS--Longest Common Subsequence,即最长公共子序列,一般使用DP来解。 常规方法: dp[i][j]表示字符串s1前i个字符组成的字符串与s2前j个字符组成的字符串的LCS的长度,则当s1[i-1]==s2[j-1]时,dp[i][j]=dp[i-1][j-1]+1,否
        阅读全文
                
摘要:题目链接:http://poj.org/problem?id=1015 错误解法: 网上很多解法是错误的,用dp[i][j]表示选择i个人差值为j的最优解,用path[i][j]存储路径,循环次序为“选的第几个人->选哪个人->差值之和”或者“选的第几个人->差值之和->选哪个人”,为了避免选择重复
        阅读全文
                
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1160 思路: 又是一道LIS的应用题,先预处理,按照w从小到大排列,那么原问题就转变成求该排列的LIS,但需要定义元素id记录该数据在原来排列中的位置,并定义pre元素记录某数据在LIS中的上一个数据,
        阅读全文
                
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1257 方法1--贪心: 定义一个数组f[30005],由于题目没给数据量大小,故为了保险,开到最大(高度的最大值)。f[i]表示第i套系统最后一发导弹的值。边输入边处理就行,若当前值可以使用之前的系统则
        阅读全文
                
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1260 思路: 很简单的DP题,状态方程也比较容易想到,用f[i]表示到第i个人所耗的最短时间,详见代码。
        阅读全文
                
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1176 思路: 这道题不复杂,很明显是个dp题,数据比较大,搜索应该会超时,想到如何初始化,注意细节就差不多了。定义dp数组,边输入边初始化,dp[i][j]表示第i秒j处的掉落馅饼个数。dp过程从最后一
        阅读全文
                
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1114 思路: 题目看着有些绕,其实就是完全背包的变形,需要注意的是这里求最小值,所以需要将dp数组初始化为inf,但要将dp[0]=0,这样才能将dp进行下去。还有就是dp处的双重循环的第二层循环应该从
        阅读全文
                
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1087 思路:这题很简单了,纯LIS的解法,没有一点变形,由于数据小,使用O(n^2)LIS解法就足够了,另外由于长度最长的上升子序列不一定有最大的score,故LIS的O(nlogn)最优算法不能使用,
        阅读全文
                
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1069 思路: 由题意,显然一种block可能有6种形式,且一种形式最多使用一次,因此最多有30×6=180个block。然后先按长进行排序,若长相同,则按宽进行排序。这样排序之后整个问题就变成了求这个排
        阅读全文
                
摘要:题目链接:http://poj.org/problem?id=1631 这个题题目有些难看懂hhh,但实质就是求LIS--longest increasing sequence。 以下介绍LIS的解法模板: 一.O(n^2)解法 用a数组存储数据,f[i]表示以a[i] 结尾的最长子序列的长度,这样
        阅读全文
                
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1024 题意: 最大M子段和问题给定由 n个整数(可能为负整数)组成的序列a1,a2,a3,……,an,以及一个正整数 m,要求确定序列 a1,a2,a3,……,an的 m个不相交子段,使这m个子段的总和
        阅读全文
                
摘要:题目链接:https://www.luogu.org/problemnew/show/P1064 这是一个有依赖的背包问题,属于01背包的变式。这题还好,每个主件最多有2个附件,那么在对主件进行背包的时候,决策就不再是两个,而是五个。 01背包的决策: 这个题目的决策: 这里需要先判断选附件的决策是
        阅读全文
                
摘要:题目链接:https://www.luogu.org/problemnew/show/P1004 思路: 这道题是四维DP的模板题,与luoguP1006传纸条基本相似,用f[i][j][k][l]表示第一个人走到(i,j),第二个人走到(k,l)时两个人取得数的和的最大值。显然复杂度最多为9×9×
        阅读全文
                
摘要:Max Sum Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 306494 Accepted Submission(s): 72850 Pro
        阅读全文
                
摘要:第2关:最强战队 挑战任务 绿盟和各大名企合作,举办编程能力大赛,需要选拔一支参赛队伍。队伍成员全部来自“绿盟杯”中表现优秀的同学,每个同学都根据在比赛中的表现被赋予了一个能力值。现在被召集的N个同学已经集结完毕,他们按照编号依次站成了一排。 你需要编写一个程序,从这N个同学中选出S个同学,要求选出
        阅读全文
                
 
                    
                
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号