02 2019 档案

摘要:"传送门" 一个朴素的做法就是暴力连边并查集,可是这是$O(n^2)$的。发现每一次连边可以看成两个区间覆盖,这两个区间之间一一对应地连边。可线段树对应的两个节点的size可能不同,这会导致“一一对应”的条件在线段树上失效。所以我们需要使用ST表来完成连边。 对原序列建好ST表,对于每一个修改将两个 阅读全文
posted @ 2019-02-28 21:18 cjoier_Itst 阅读(307) 评论(0) 推荐(0)
摘要:"传送门" 在最优的情况下,序列$s_1,s_2,...,s_k$中,$s_i (i \in [2 , k])$一定会是$s_{i 1}$的一个$border$,即$s_i$同时是$s_{i 1}$的前缀和后缀,否则一定可以通过减去$s_{i 1}$的一个前缀和后缀使得满足条件。 对原串建立$SAM 阅读全文
posted @ 2019-02-28 16:29 cjoier_Itst 阅读(268) 评论(2) 推荐(0)
摘要:"传送门" 题意差评,其实就是一个递推式:$f_1 = 1 , f_i = \sum\limits_{j=2}^i f_{\lfloor \frac{i}{j} \rfloor}$,然后求$f_N$的值 首先$\lfloor \frac{i}{j} \rfloor$只有$2\sqrt{i}$种取值, 阅读全文
posted @ 2019-02-28 14:20 cjoier_Itst 阅读(347) 评论(0) 推荐(0)
摘要:"传送门" 朴素想法:对$M$个匹配串$T_1,...,T_M$建立广义SAM,对于每一次询问,找到这个SAM上$S[pl...pr]$对应的状态,然后计算出对于每一个$i \in [l,r]$,计算出$T_i$能够转移到这个状态的次数然后取$max$。 需要解决两个问题: 1、如何快速找到$S[p 阅读全文
posted @ 2019-02-27 10:59 cjoier_Itst 阅读(297) 评论(0) 推荐(0)
摘要:"传送门" UPD:发现之前被smy误导的一个细节,改过来之后就AC了…… 一道比较套路的SAM题,虽然我连套路都不会…… 先考虑前$68pts$,也就是$l=1 , r=|S|$的情况。我们对$S$建好SAM,把$T$扔到$S$的SAM上匹配,如果不考虑本质不同子串的性质,那么答案就是$\sum\ 阅读全文
posted @ 2019-02-26 21:44 cjoier_Itst 阅读(274) 评论(5) 推荐(0)
摘要:"传送门——CF" "传送门——UOJ" 题目要求基环树删掉环上的一条边得到的树的直径的最小值。 如果直接考虑删哪条边最优似乎不太可做,于是考虑另一种想法:枚举删掉的边并快速地求出当前的直径。 对于环上的点,先把它的子树计算完毕,然后将最深的那条链接在这个点上,即记录每个点子树的最深深度,记为$de 阅读全文
posted @ 2019-02-25 22:31 cjoier_Itst 阅读(255) 评论(3) 推荐(0)
摘要:"传送门" 树上的任意一条路径一定会在以某一个叶子节点为根的树上成为一条直上直下的链,而总共只有$20$个叶子节点。 于是每一次选所有叶子节点中的一个作为根,形成一个$Trie$,把$20$个$Trie$统一到一个$Trie$上,然后对这个总的$Trie$建立广义后缀自动机,最后统计一下广义SAM每 阅读全文
posted @ 2019-02-25 10:19 cjoier_Itst 阅读(265) 评论(1) 推荐(0)
摘要:"传送门" $r = 1$直接判断所有点度数是否为偶数 考虑$r = 2$的情况。设$x_i=0/1$表示$i$点所在的集合,那么若$2 \mid du_u$,则$\bigoplus\limits_{(u,v) \in e} x_v = 0$,否则$\bigoplus\limits_{(u,v) \ 阅读全文
posted @ 2019-02-23 19:17 cjoier_Itst 阅读(450) 评论(0) 推荐(2)
摘要:HNOI2017 "单旋" (线段树、set) 手玩旋转操作(忽略手玩过程)可以发现:一次单旋对原树的变化实际上很小。 对于父子关系,单旋最小值会将$Spaly$上最小值变成原来根的父亲,将最小值的点右子树变为它父亲的左子树,单旋最大值相反; 对于$dep$的变化,单旋最小值时,除了最小值点和它的右 阅读全文
posted @ 2019-02-21 22:26 cjoier_Itst 阅读(533) 评论(4) 推荐(0)
摘要:HNOI2014 "世界树" (虚树、倍增) $\sum M \leq 3 \times 10^5$虚树没得跑 对于所有重要点和它们的$LCA$建立虚树,然后计算出每一个虚树上的点被哪个重要点控制。注意这里不仅要从父亲向儿子DFS一次,还要从儿子向父亲DFS一次,因为有可能某些重要点向上控制一些点。 阅读全文
posted @ 2019-02-21 20:25 cjoier_Itst 阅读(326) 评论(6) 推荐(0)
摘要:HNOI2018 寻宝游戏(位运算、基数排序) 看到位运算就要按位考虑。二进制下,$\land 1$与$\lor 0$没有意义的,$\land 0$强制这一位变为$0$,$\lor 1$强制这一位变为$1$ 那么如果某一位的答案要为$0$,也就意味着:要么同时不存在$\land 0$与$\lor 1 阅读全文
posted @ 2019-02-21 16:00 cjoier_Itst 阅读(385) 评论(0) 推荐(0)
摘要:HNOI2015 "亚瑟王" (概率DP) 根据期望的线性性,我们只需要算出每一种卡牌触发的概率就可以算出期望的值 考虑与第$i$张卡牌触发概率相关的量,除了$p_i$还有前$i 1$张卡牌中触发过的卡牌的数量。 假设前$i$张卡牌中触发了$j$张的概率为$f_{i,j}$,那么第$i$张卡牌的触发 阅读全文
posted @ 2019-02-21 11:08 cjoier_Itst 阅读(268) 评论(0) 推荐(1)
摘要:HNOI2016 "最小公倍数" (分块、并查集) 看到这种不能用数据结构(实际上是可以用K D Tree的)维护的题目就应该想到分块然后使用并查集维护连通性和一个连通块中的$maxa , maxb$啊QAQ 为了区分询问的$ab$与边权的$ab$,询问的$ab$描述变为$AB$ 对于所有边按照$a 阅读全文
posted @ 2019-02-20 19:32 cjoier_Itst 阅读(465) 评论(14) 推荐(1)
摘要:"传送门" 值得注意的是一般的DAG的拓扑序列数量是NP问题,所以不能直接入手 题目中给出的图可以看做是一个树形图,虽然方向比较迷。考虑使用树形图的性质 不妨任选一个点为根做树形DP,注意到数的位置与方案数相关,所以也要设在状态内。故设$f_{i,j}$表示对于$i$及$i$的子树所有点构成的拓扑序 阅读全文
posted @ 2019-02-20 14:57 cjoier_Itst 阅读(282) 评论(0) 推荐(0)
摘要:"传送门" 差分是真心人类智慧……完全不会 这么经典的式子肯定考虑莫比乌斯反演,不难得到$b_k = \sum\limits_{i=1}^k \mu(i) \lfloor\frac{k}{i} \rfloor^n$ 直接做是$O(n\sqrt{n})$的不够优秀,但是我们需要求的是$b_1$到$b_ 阅读全文
posted @ 2019-02-15 11:33 cjoier_Itst 阅读(425) 评论(0) 推荐(1)
摘要:"传送门" 如果$r l$比较小,可以将所有满足条件的串扔进$AC$自动机然后在上面DP,从前往后确定字符串的每一位。 但是$l,r \leq 10^{800}$就十分不可行,所以需要优化这个算法。 考虑可能会有某一个节点的子节点连向的所有子节点构成一个满十叉树,意即当到达了这个节点之后可以随便往下 阅读全文
posted @ 2019-02-13 16:12 cjoier_Itst 阅读(611) 评论(0) 推荐(2)
摘要:"传送门" 将原数组差分一下,设$d_i = c_{i+1} c_i$ 考虑在$i$位置的一次操作会如何影响差分数组 $d_{i+1}' = c_{i+1} (c_{i+1} + c_{i 1} c_i) = c_i c_{i 1} = d_i$ $d_i' = (c_{i+1} + c_{i 1} 阅读全文
posted @ 2019-02-08 16:19 cjoier_Itst 阅读(290) 评论(0) 推荐(0)
摘要:"传送门" UPD:之前可能对白色变无色的过程讲的不是很清楚,已经补充 显然在双方绝顶聪明的情况下,黑色不可能赢 首先考虑树上一个白色的点都没有的情况: 1、如果树上有一个点的度数$\geq 4$,白色必赢,只需要第一次将这一个点染成白色,接着随便染它的两个邻居就可以达成目标 2、如果树上有一个点的 阅读全文
posted @ 2019-02-08 15:42 cjoier_Itst 阅读(966) 评论(5) 推荐(3)
摘要:"传送门" ~~做莫比乌斯反演题显著提高了我的$\LaTeX$水平~~ 推式子(默认$N \leq M$,分数下取整,会省略大部分过程) $\begin{align } \prod\limits_{i=1}^N \prod\limits_{j=1}^M f[gcd(i,j)] & = \prod\l 阅读全文
posted @ 2019-02-07 15:21 cjoier_Itst 阅读(244) 评论(0) 推荐(0)
摘要:"传送门——UOJ" "传送门——LOJ" 跟隔壁 "通道" 是一个类型的 要求的式子中有两个LCA,不是很方便,因为事实上在这种题目中LCA一般都是枚举的对象…… 第二棵树上的LCA显然是动不了的,因为没有其他的量跟它有关了,于是考虑将$dep_x+dep_y dep_{LCA(x,y)}$魔改一 阅读全文
posted @ 2019-02-05 21:08 cjoier_Itst 阅读(286) 评论(0) 推荐(0)
摘要:"传送门" 似乎直接做不太好做…… 当你不会做的时候就可以考虑根号算法了(或许是这样的 考虑如果只有一个询问如何计算答案。 显然是可以贪心的,思路与NOIP2018D1T3是相同的。每一个点向上传一条链,对于某一个点,如果从儿子传上来的所有链中最长的两条的长度之和$\geq k$就连上,否则就把其中 阅读全文
posted @ 2019-02-02 21:58 cjoier_Itst 阅读(284) 评论(0) 推荐(0)
摘要:"传送门" 暴力枚举$0$的长度,如果对应的$1$的长度也是一个整数就去check是否合法。check使用字符串哈希。 复杂度看起来是$O(st)$的,但是因为$01$两个数中数量较多的至少有$\frac{|s|}{2}$个,那么最多有$\frac{2|t|}{|s|}$个可能的答案,而每一次che 阅读全文
posted @ 2019-02-02 21:47 cjoier_Itst 阅读(275) 评论(0) 推荐(0)
摘要:"传送门" 好久没写数论题了写一次调了1h 首先发现递推式是一个乘方的形式,线性递推和矩阵快速幂似乎都做不了,那么是否能够把乘方运算变成加法运算和乘法运算呢? 使用原根!学过$NTT$的都知道$998244353$的原根$G=3$。 使用原根之后,可以得到一个等价的新递推式:$G^{g_i} = \ 阅读全文
posted @ 2019-02-01 10:14 cjoier_Itst 阅读(355) 评论(1) 推荐(0)