![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
动态规划
Charles_zzz
这个作者很懒,什么都没留下…
展开
-
背包问题
dasdas原创 2018-11-16 22:23:29 · 179 阅读 · 0 评论 -
Monkey and Banana
Monkey and Bananahttp://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1093ps:该题个人认为我的初始方法比较暴力,可能不是暴力解,,这是看了别人一点思路直接自己写的,,没看具体代码,可能部分需要改,,持续更新一开始写了一种终极无敌暴力的递归做法。。个人认为挺好理解的hhh因为这题砖头是三维的,而且可以...原创 2018-11-23 21:44:22 · 371 阅读 · 1 评论 -
Human Gene Functions
ZOJ1027 Human Gene Functionshttp://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=27思路:算是最长公共子序列的拓展。。设第一个字符串用char[] x存储第二个字符串用char[] y存储如果检索到 x 的第 i 个字符, y 的第 j 个字符,那么就只有三个选择方式。1)x[i] 与 ‘-’...原创 2018-11-22 22:24:36 · 290 阅读 · 0 评论 -
To the max
To the Maxhttp://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=74思路:最大子段和的拓展。。。新建两个指针,i 指针和 j 指针然后每次把i~j行的数合并,看成是一维的最大子段和,同理解即可,但注意细节可以适当减少时间import java.util.Scanner;public class ToTheMa...原创 2018-11-22 23:01:53 · 189 阅读 · 0 评论 -
最长公共子序列
最长公共子序列思路:把两个序列的最后一位数进行比较 相等就令公共子序列长度+1,然后再令序列长度减少1再继续比较,如果不相等就分别令其中一个序列长度-1再继续比较,先看递归方式会很好理解static int[][] memo = new int[1000][1000]; static int[][] dp = new int[1000][1000]; //暴力递归 static int ...原创 2018-11-17 17:16:48 · 233 阅读 · 0 评论 -
最长递增子序列
最长递增子序列第一种是纯用动态规划的O(n2)的方法dp[i] 表示0~i的最长递增序列的长度思路:对于每个i,都向前面寻找dp[j]以及num[j]最大且num[j] < num[i]的j, 然后进行状态转移,从长度为2 到 n,依次遍历即可个人认为该方式不太像动态规划 hhh然后附上代码: static int[] num = new int[100000]; static...原创 2018-11-17 22:21:59 · 230 阅读 · 0 评论 -
ZOJ FatMouse and Cheese
ZOJ FatMouse and CheeseZoj FatMouse and Cheese思路:因为题目中提及一直吃到老鼠不能再吃奶酪的情况,所以,对于这种结束的地方不确定的最优化问题,用dp(这里我认为的dp就是递推状态转移,欢迎读者纠正我的说法^ _ ^)是难以求解的,所以用到记忆化搜索的结果就很好。。博主还是一样的思想,先写递归,再改记忆化只要写一个递归函数,每次都去寻找老鼠能达到...原创 2018-11-30 19:30:31 · 207 阅读 · 0 评论 -
#ZOJ FatMouse's Speed
ZOJ FatMouse’s SpeedZOJ FatMouse’s Speed这题目一看就知道是LIS的加强版,判断两个方向。思路:由于题目不像LIS直接检索递增,所以有了预处理。这里我根据老鼠的重量排序,质量相等就按速度逆序排序。然后再对速度进行LIS的处理就好了。然后另一个坑就是还得输出任意最长序列,那么我新建一个数组front[n]去记录这个值的最长子序列的上一个值的索引就ok...原创 2018-11-30 22:42:54 · 219 阅读 · 0 评论