动态规划
Charles_zzz
这个作者很懒,什么都没留下…
展开
-
背包问题
dasdas原创 2018-11-16 22:23:29 · 166 阅读 · 0 评论 -
Monkey and Banana
Monkey and Banana http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1093 ps:该题个人认为我的初始方法比较暴力,可能不是暴力解,,这是看了别人一点思路直接自己写的,,没看具体代码,可能部分需要改,,持续更新 一开始写了一种终极无敌暴力的递归做法。。个人认为挺好理解的hhh 因为这题砖头是三维的,而且可以...原创 2018-11-23 21:44:22 · 319 阅读 · 1 评论 -
Human Gene Functions
ZOJ1027 Human Gene Functions http://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 · 258 阅读 · 0 评论 -
To the max
To the Max http://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 · 176 阅读 · 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 · 216 阅读 · 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 · 220 阅读 · 0 评论 -
ZOJ FatMouse and Cheese
ZOJ FatMouse and Cheese Zoj FatMouse and Cheese 思路:因为题目中提及一直吃到老鼠不能再吃奶酪的情况,所以,对于这种结束的地方不确定的最优化问题,用dp(这里我认为的dp就是递推状态转移,欢迎读者纠正我的说法^ _ ^)是难以求解的,所以用到记忆化搜索的结果就很好。。 博主还是一样的思想,先写递归,再改记忆化 只要写一个递归函数,每次都去寻找老鼠能达到...原创 2018-11-30 19:30:31 · 172 阅读 · 0 评论 -
#ZOJ FatMouse's Speed
ZOJ FatMouse’s Speed ZOJ FatMouse’s Speed 这题目一看就知道是LIS的加强版,判断两个方向。 思路:由于题目不像LIS直接检索递增,所以有了预处理。 这里我根据老鼠的重量排序,质量相等就按速度逆序排序。 然后再对速度进行LIS的处理就好了。 然后另一个坑就是还得输出任意最长序列,那么我新建一个数组front[n]去记录这个值的最长子序列的上一个值的索引就ok...原创 2018-11-30 22:42:54 · 208 阅读 · 0 评论