摘要: 令dp[i]为前i个人买好票的最少花费。 那么这个状态可由2种状态转移而来:1.上一个人和自己组队买票 2.上一个人不和自己组队买票 即可得:dp[i] = min(dp[i-1]+cost[i], dp[i-2]+together[i]); 阅读全文
posted @ 2018-06-09 00:31 gaawing 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 令dp[i][j]为i时刻j位置时的最大馅饼量。由于每个状态只能由临近的3个状态转移而来,所以可以较为简单的确定递推式。 第一个要思考的点:正推还是逆推?逆推的好,正推的话不知哪些状态可走,而逆推的话,是在当前状态下确定之前的状态,所以不存在这个问题。 第二个思考的点:为什么答案是dp[0][6], 阅读全文
posted @ 2018-06-08 23:58 gaawing 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 需要用线段树维护区间的3个变量: 区间最长的:[左连续前缀、右连续后缀、最大连续子区间] 的元素个数 其中红线左侧的是第m个元素,右侧是m+1个元素。 更新完左右子树想要pushUp操作的时候,父亲的左前缀必然是左子的前缀,若是左子树满了,则左连续可能还要加上右子树的左前缀。同理,父亲的右后缀必然是 阅读全文
posted @ 2018-06-02 17:26 gaawing 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 对区间进行操作:操作0是区间内的每个点的值val = int(sqrt(val)); 操作1是查询区间和。 题目链接 因为是区间操作,第一感觉是lazy,但是这题lazy在push_down的时候无法快速的对区间进行更新,所以变成点操作+剪枝。留意到每个点的值必然是正整数,且开根几次之后最终都会稳定 阅读全文
posted @ 2018-06-02 11:25 gaawing 阅读(151) 评论(0) 推荐(0) 编辑
摘要: manjaro 更新之后,ycm总会多少有些毛病: 第一次遇到的问题: PluginUpdate之后ycm失效。使用命令:YcmToggleLogs查看ycmd_39047_stderr_Pp1GpB.log文件,最上面提示出错: No semantic completer exists for f 阅读全文
posted @ 2018-06-02 10:16 gaawing 阅读(1403) 评论(0) 推荐(0) 编辑
摘要: 有两个长度可能是250*250的数字串,串内元素两两不同,求最长公共子串。 常规的O(n^2)解法不论是时间或空间都无法解决,办法是转化成求最长上升子序列。 假设是有串1和串2。先给串1的元素按输入顺序来一个映射,称为映射1。比如说 1 7 5 4 8 3 9 映射成 0 1 2 3 4 5 6。那 阅读全文
posted @ 2018-05-24 16:42 gaawing 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 题目链接 问的是n个不一样的数,大小交替,或者小大交替的种类数量。 n个数,想象成[1,n]的自然数即可。 我们假设大小交替得到的长度为i的排列数为dp1[i],小大交替得到的长度为i的排列数为dp2[i],因为是对称的,其实应该有dp1=dp2,我们要计算的总和sum=dp1+dp2。 我们从小到 阅读全文
posted @ 2018-05-23 15:11 gaawing 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 线段树、离散化、扫描 阅读全文
posted @ 2018-05-22 13:43 gaawing 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 离散化处理、线段树区间更新 阅读全文
posted @ 2018-05-21 16:33 gaawing 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 费马小定理 阅读全文
posted @ 2018-04-12 18:26 gaawing 阅读(176) 评论(0) 推荐(0) 编辑