上一页 1 2 3 4 5 6 7 8 9 10 ··· 15 下一页
摘要: 很模板的树链剖分题 注意什么时候用线段树上的标号,什么时候用点的标号。 阅读全文
posted @ 2016-07-14 14:35 Helica 阅读(403) 评论(0) 推荐(0) 编辑
摘要: 树链剖分,点权,单点更改,路径查询。学树链剖分下面这个博文不错 http://blog.csdn.net/y990041769/article/details/40348013 线段树必须写的很熟练才行。注意负数 阅读全文
posted @ 2016-07-14 14:32 Helica 阅读(332) 评论(0) 推荐(0) 编辑
摘要: 略复杂的dp题。 有n个人,每个人有两个分数di,pi。从中选出m个人,要求|sigma(di)-sigma(pi)|最小,相同时则输出sigma(di)+sigma(pi)最大的情况。 答案完整输出方案。 dp[i][j]表示i个人的组合里,差值为j的情况下,和值的最大值。 计算每一个人的差值su 阅读全文
posted @ 2016-05-28 18:02 Helica 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 不是特别难的一道dp题。 给r个红块,g个绿块,计算这些块能磊出的最高塔的方案数。 塔的每一层都比上一层多一块,每一层只能有一种颜色。 dp[i][j]表示第i层,j个红块的方案数。 则dp[i][j] = dp[i-1][j] + dp[i-1][j-i].注意一下方案的转移和最终结果的统计。 阅读全文
posted @ 2016-05-28 17:54 Helica 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 一道dp模拟题。 给n个板子和一个初始坐标xy,从x,y开始向下跳,有一个最高的下跳距离。 在板子上走和下跳都消耗时间。计算到达地面的最短时间。 把板子按高度排序 dp[i][0]表示到达第i块板子左边沿的时间,dp[i][1]表示到达右边沿的时间。 则 dp[i][0] = min(dp[k][0 阅读全文
posted @ 2016-05-25 18:59 Helica 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 可重叠重复k次的最长子串长度。 还是使用二分答案对heigh数组分组的做法。 POJ 阅读全文
posted @ 2016-05-19 22:27 Helica 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 计算所都不相同子串的个数,做法是所有子串的个数减去sigma(height[]).其中height数组的和便是所有相同子串的个数。 注意 N×(N+1)/2会爆int!但是最终答案在int内。所以使用sigma(n-sa[i]+1-height[i])的做法不会wa 阅读全文
posted @ 2016-05-19 22:25 Helica 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 后缀数组处理最长公共子串问题。 将两个串接在一起,计算height的最大值。同时要保证sa[i]和sa[i-1]在不同的串当中。 阅读全文
posted @ 2016-05-18 20:57 Helica 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 后缀数组国家集训队论文 论文上讲的很清楚。 最长不重叠重复子串问题。首先二分答案,对于每一个mid长度,按照后缀的height大于mid对height数组分组。 可以证明,答案在同一个height当中。维护每一组的最大最小sa值,差便是每一组的最大不重叠重复子串长度。如果大于mid就return t 阅读全文
posted @ 2016-05-18 20:55 Helica 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 很完整的splay操作。做了这题就可以当板子用了。 阅读全文
posted @ 2016-05-18 17:44 Helica 阅读(214) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 15 下一页