2018年4月1日

摘要: 看了佳爷才有思路的,这也是算法导论的dp课后练习--贴代码,用内置数组ac了,而思路相同的vector并没有过,在本地的两个测试样例都没有问题,不知道哪里出错,还用vector试了一下不等长的二维数组,结果wa,这里开心(捂胸口状 ac vector实现 阅读全文
posted @ 2018-04-01 20:54 只是个回忆录 阅读(127) 评论(0) 推荐(0)
摘要: 贴代码,总觉得这个和LCS十分的神似,特别是递推式,除了打印答案的判断那边要把m[i][j] == m[i + 1][j - 1] + 2换成s[i]==s[j]。考虑"noni"的情况,m[0][3]==m[1][2]+2,然而并不是打印s[0]和s[3],所以应该限制条件为s[i]==s[j], 阅读全文
posted @ 2018-04-01 16:15 只是个回忆录 阅读(172) 评论(0) 推荐(0)
摘要: 感觉这个比较妙的主要是状态的定义,e[i][j]表示在k[i-1]和k[j+1]之间的关键字(全开区间)作为一颗有根树的最小搜索代价,w[i][j]表示在k[i-1]和k[j+1]之间的关键字(全开区间)的概率之和,同时也把e[i][i-1]和w[i][i-1]的情况包括进去了,即伪节点的概率,除了 阅读全文
posted @ 2018-04-01 13:13 只是个回忆录 阅读(158) 评论(0) 推荐(0)
摘要: lis的实现有三种,一种是简单的O(n^2)的dp,第二种是转化为lcs,用原序列排序后得到一个有序的序列,并求两序列的最长公共子序列。这种可以比较方便地打印出答案,复杂度也是O(n^2)。最后是维护一个为某个长度时该长度序列的最后一个数可取的最小值,用了二分查找将复杂度降到O(nlogn)。 阅读全文
posted @ 2018-04-01 13:02 只是个回忆录 阅读(149) 评论(0) 推荐(0)

导航