摘要: 题目分析: 好像跑得很快,似乎我是第一个启发式合并的。 把玩具看成区间。首先很显然如果有两个玩具的进出时间有$l1<l2<r1<r2$的关系,那么这两个玩具一定在不同的栈中间。 现在假设一定有解,我们怎么得到答案呢?排序会使得计算变得方便,下面我们按照左端点排序。 想象一条扫描线,从左往右,当它遇到 阅读全文
posted @ 2018-07-07 16:27 menhera 阅读(484) 评论(0) 推荐(0) 编辑
摘要: 题目分析: 对于一个$add$操作,它的特点是与树状数组的查询相同,会给$1$到它自己产生影响,而$query$操作则会途径所有包含它的树状数组点。现在$add$操作具有前向性(不会影响之后的点)。所以实际上这是求后缀和。 现在我们知道,对于$query(l,r)$,它等于${Xor}_{i=l-1 阅读全文
posted @ 2018-07-07 16:27 menhera 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 题目分析: 答案肯定是链,否则可以把枝干放到主干。 去除一直存在的位,这样0位占满时就会结束。 用$f[S]$表示0位填埋情况,每次转移是它的一个子集,我们考虑可否转移。 再用$g[S]$存储转移是否合法,用滑稽果填充$g$数组。不一定要完全满足条件,因为有其它方案更优,无影响。 代码: 阅读全文
posted @ 2018-07-07 16:26 menhera 阅读(397) 评论(1) 推荐(0) 编辑
摘要: 题目分析: 不难注意到仙人掌边可以删掉。在森林中考虑树形DP。 题目中说边不能重复,但我们可以在结束后没覆盖的边覆盖一个重复边,不改变方案数。 接着将所有的边接到当前点,然后每两个方案可以任意拼接。然后考虑引一条边上去的情况,选一个点不与周围连边就行了。 判仙人掌利用dfs树与树前缀和即可。 代码: 阅读全文
posted @ 2018-07-07 16:26 menhera 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 给两个树,求环的个数。 题目分析: 出题人摆错题号系列。 通过画图很容易就能想到把新图拆在两个树上,在树上游走成环。 考虑DP状态F,G,T。F表示最终答案,T表示儿子不考虑父亲,G表示父亲不考虑儿子。T通过从下往上做NTT,G通过从上往下做NTT。F顺便做NTT。 最后做一下拼接就行。 阅读全文
posted @ 2018-07-07 16:26 menhera 阅读(336) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 一个$n*n$的格子,每个格子由你填色,有三种允许填色的方法,问有一行或者一列相同的方案数。 题目分析: 标题的FMT是我吓人用的。 一行或一列的问题不好解决,转成它的反面,没有一行和一列相同的方案数。 从一个方向入手,比如列,把一列看成一个整体。把颜色看成二进制数,$001$,$010 阅读全文
posted @ 2018-07-07 16:26 menhera 阅读(320) 评论(0) 推荐(0) 编辑