摘要:
题面 感觉是个套路题,不是特别难(然而卡常 直接做不可做,改成算每个数的贡献 暴力的想法是容斥,即记录每个数在每行里的出现情况,从总方案中扣掉每一行都没选到这个数的方案,复杂度$O(n^3)$ 我们发现很多时候一行里根本没有这个数,也就是说很多情况下都白枚举了,我们可以尝试直接对每个数求方案。具体来 阅读全文
posted @ 2019-03-15 21:02
Speranza_Leaf
阅读(158)
评论(0)
推荐(0)
摘要:
沙茶博主在抢救之前的字符串水平:KMP+Manacher+哈希+(不熟的)AC自动机 所以自我抢救系列又多了一篇 (这人怎么什么都要抢救,回炉重造吧) 表示12月集训后只学会了怎么写SAM,完全不知道怎么用 断断续续到了省选前三周,再不学就不用学了=。= 所以这篇文章同样不适合用来学SAM (主要是 阅读全文
posted @ 2019-03-15 11:10
Speranza_Leaf
阅读(189)
评论(0)
推荐(0)
摘要:
题面 分析性质以进行DP 性质1:一定有一个最优解通过每次删除第一个或最后一个字符达到 这个脑补一下就能证明了 那么我们设$dp[i]$表示后缀$[i,n]$选出一个前缀所能达到的最大长度,从右往左DP 转移时二分当前DP值$dp[i]$,在右边找有没有大于等于$f_i-1$且是$[i,n]$前缀/ 阅读全文
posted @ 2019-03-15 09:16
Speranza_Leaf
阅读(121)
评论(0)
推荐(0)
摘要:
题面 求中位数的套路:二分,大于等于的设为1,小于的设为-1 于是可以从小到大排序后依次加入可持久化线段树,这样每次只会变化一个位置 那左右端点是区间怎么办? 先把中间的算上,然后维护每个区间左右两侧最大子段和,左右和右左拼起来即可 1 #include<cstdio> 2 #include<cst 阅读全文
posted @ 2019-03-15 08:35
Speranza_Leaf
阅读(164)
评论(0)
推荐(0)
摘要:
题面 根据树上距离的计算方法,可以先把答案化成$\sum dep_i+n*dep_u-\sum 2*dep[LCA(i,u)]$的形式,然后维护$\sum 2*dep[LCA(i,u)]$ 把妖怪们按年龄排序,轻重剖分后插入每个点到根的路径,记录经过次数,询问也是往根跳然后每次统计边权*次数。 可持 阅读全文
posted @ 2019-03-15 08:17
Speranza_Leaf
阅读(120)
评论(0)
推荐(0)

浙公网安备 33010602011771号