随笔分类 -  数据结构->树状数组

摘要:LOJ 3030. 「JOISC 2019 Day1」考试 看起来求一个奇怪图形(两条和坐标轴平行的线被切掉了一个角)内包括的点个数 too naive! 首先熟练的转化求不被这个图形包含的个数 …… 也不好求 我们把c转化成max(c,a + b) 就会发现这条斜线把不合法的刚好分成了三个部分,也 阅读全文
posted @ 2019-05-29 16:47 sigongzi 阅读(407) 评论(0) 推荐(0)
摘要:题解 可以想一下保留一个长度为k的不降序列方案数是$f[k] (n k)!$ $f[k]$是有多少个长度为k的不降序列 我们去掉不合法的,一定是前一次操作的时候有一个长度为$k + 1$的不降序列,于是长度恰好为$k$的方案数就是 $f "k" ! f "k + 1" !(k + 1)$ $f[k] 阅读全文
posted @ 2018-12-12 17:46 sigongzi 阅读(239) 评论(0) 推荐(0)
摘要:题解 好神仙的题啊 感觉转二维平面能想到,算重复情况的方法真想不到啊 通过扒stdcall代码获得的题解QAQQQQ 我们先把$p_i$正串反串建出一个AC自动机来 然后我们把s串放在上面跑匹配,正着跑一遍,反着跑一遍,我们就得到了$s$中每个位置正着和反着能匹配到的节点编号 然后对于AC自动机,我 阅读全文
posted @ 2018-12-01 09:23 sigongzi 阅读(817) 评论(0) 推荐(0)
摘要:题解 点了一个新技能叫杨表(事实上集训的时候听过,但是一直不会 这道题就是让我们找到k个不上升子序列,要求长度加和最大 我们用杨表去维护,但是由于杨表的行数可能是n的,复杂度会炸 我们只维护前$\sqrt{n}$行 有个结论是把杨表排序方式改过来那么我们会得到杨表的转置,我们发现我们只需要求一些列的 阅读全文
posted @ 2018-10-18 16:37 sigongzi 阅读(884) 评论(0) 推荐(0)
摘要:C Candles 题解 点燃的一定是连续的一段,枚举左端点即可 代码 D Median of Medians 二分一个值作为中位数的中位数,把大于这个数的设成1,小于等于这个数的设成0 然后我们就需要知道小于等于这个数做中位数的区间有多少个,用树状数组维护,和全部区间个数的一半比较一下即可 题解 阅读全文
posted @ 2018-10-12 22:14 sigongzi 阅读(365) 评论(0) 推荐(0)