05 2016 档案
摘要:略复杂的dp题。 有n个人,每个人有两个分数di,pi。从中选出m个人,要求|sigma(di)-sigma(pi)|最小,相同时则输出sigma(di)+sigma(pi)最大的情况。 答案完整输出方案。 dp[i][j]表示i个人的组合里,差值为j的情况下,和值的最大值。 计算每一个人的差值su
阅读全文
摘要:不是特别难的一道dp题。 给r个红块,g个绿块,计算这些块能磊出的最高塔的方案数。 塔的每一层都比上一层多一块,每一层只能有一种颜色。 dp[i][j]表示第i层,j个红块的方案数。 则dp[i][j] = dp[i-1][j] + dp[i-1][j-i].注意一下方案的转移和最终结果的统计。
阅读全文
摘要:一道dp模拟题。 给n个板子和一个初始坐标xy,从x,y开始向下跳,有一个最高的下跳距离。 在板子上走和下跳都消耗时间。计算到达地面的最短时间。 把板子按高度排序 dp[i][0]表示到达第i块板子左边沿的时间,dp[i][1]表示到达右边沿的时间。 则 dp[i][0] = min(dp[k][0
阅读全文
摘要:可重叠重复k次的最长子串长度。 还是使用二分答案对heigh数组分组的做法。 POJ
阅读全文
摘要:计算所都不相同子串的个数,做法是所有子串的个数减去sigma(height[]).其中height数组的和便是所有相同子串的个数。 注意 N×(N+1)/2会爆int!但是最终答案在int内。所以使用sigma(n-sa[i]+1-height[i])的做法不会wa
阅读全文
摘要:后缀数组处理最长公共子串问题。 将两个串接在一起,计算height的最大值。同时要保证sa[i]和sa[i-1]在不同的串当中。
阅读全文
摘要:后缀数组国家集训队论文 论文上讲的很清楚。 最长不重叠重复子串问题。首先二分答案,对于每一个mid长度,按照后缀的height大于mid对height数组分组。 可以证明,答案在同一个height当中。维护每一组的最大最小sa值,差便是每一组的最大不重叠重复子串长度。如果大于mid就return t
阅读全文
摘要:很完整的splay操作。做了这题就可以当板子用了。
阅读全文
摘要:比较模板的splay题 cut操作和reverse操作。
阅读全文
摘要:1 #include 2 #include 3 #include 4 5 using namespace std; 6 7 #define Key_value (ch[ch[root][1] ][0]) 8 9 const int maxn = 2e5+10; 10 const int INF = 0x3f3f3f3f; 11 12 i...
阅读全文
摘要:板子题,正在努力看懂板子。。 http://blog.csdn.net/acm_cxlove/article/details/7815019 http://www.cnblogs.com/kuangbin/archive/2013/04/21/3034081.html
阅读全文
摘要:模板题,以后要学splay,大概看一下treap就好了。
阅读全文

浙公网安备 33010602011771号