2018年4月4日

摘要: dp + greedy实现 阅读全文
posted @ 2018-04-04 15:55 只是个回忆录 阅读(115) 评论(0) 推荐(0) 编辑

2018年4月2日

摘要: 一开始觉得思路问题不大就是WA,打了个球回来又看了会,可能是自己默认测试数据全为正数了,改了下判断的逻辑就ac了 阅读全文
posted @ 2018-04-02 12:24 只是个回忆录 阅读(112) 评论(0) 推荐(0) 编辑

2018年4月1日

摘要: 看了佳爷才有思路的,这也是算法导论的dp课后练习--贴代码,用内置数组ac了,而思路相同的vector并没有过,在本地的两个测试样例都没有问题,不知道哪里出错,还用vector试了一下不等长的二维数组,结果wa,这里开心(捂胸口状 ac vector实现 阅读全文
posted @ 2018-04-01 20:54 只是个回忆录 阅读(122) 评论(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 只是个回忆录 阅读(164) 评论(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 只是个回忆录 阅读(152) 评论(0) 推荐(0) 编辑
摘要: lis的实现有三种,一种是简单的O(n^2)的dp,第二种是转化为lcs,用原序列排序后得到一个有序的序列,并求两序列的最长公共子序列。这种可以比较方便地打印出答案,复杂度也是O(n^2)。最后是维护一个为某个长度时该长度序列的最后一个数可取的最小值,用了二分查找将复杂度降到O(nlogn)。 阅读全文
posted @ 2018-04-01 13:02 只是个回忆录 阅读(146) 评论(0) 推荐(0) 编辑

2018年3月31日

摘要: 标题有点累赘,好像无环就可以保证绝对简单了,下面给出代码的实现 LongestPath.h 这是借鉴某博客的,后面追根溯源找到了https://www.geeksforgeeks.org/find-longest-path-directed-acyclic-graph/ 一开始的想法是好好学习(照着 阅读全文
posted @ 2018-03-31 22:25 只是个回忆录 阅读(188) 评论(0) 推荐(0) 编辑

2018年3月29日

摘要: 做过简单的测试,应该没什么大问题。想想算法导论这部分看了很久,又撸过AVL写起来还是有点小迷糊,也在迷糊中学了点东西。总之继续吧 Rb_tree.h test.cpp 阅读全文
posted @ 2018-03-29 13:32 只是个回忆录 阅读(201) 评论(0) 推荐(0) 编辑

2018年3月24日

摘要: 勉强算CLRS的课后题,就贴在这了 想不到勉强看懂了算法导论红黑树代码和证明后撸个AVL看别人的代码(有错)都要撸6小时(算上简单的调试),贴代码,不想解释原理,欢迎怼错= AvlTree.h AvlTreeTest.cpp 只做了几组简单的测试,发现的小问题都改了,当然可能还有错,望告知,虚心接受 阅读全文
posted @ 2018-03-24 16:13 只是个回忆录 阅读(1942) 评论(0) 推荐(0) 编辑

2018年3月20日

摘要: 直接贴代码 阅读全文
posted @ 2018-03-20 16:09 只是个回忆录 阅读(136) 评论(0) 推荐(0) 编辑

导航