上一页 1 ··· 31 32 33 34 35 36 37 38 39 ··· 55 下一页
摘要: "Link" 我们知道往末尾加一个字符就相当于在KMP自动机上走一步,而我们的要求是不能经过终点。 那么矩阵快速幂优化DP即可。 阅读全文
posted @ 2020-01-21 15:48 Shiina_Mashiro 阅读(328) 评论(0) 推荐(0) 编辑
摘要: "Link" 设$f_{i,j}$表示$s$从$1$到第$i$个通配符是否能匹配$t_{1\sim j}$。 然后哈希一下再随便转移一下就好了。 阅读全文
posted @ 2020-01-21 15:03 Shiina_Mashiro 阅读(122) 评论(0) 推荐(0) 编辑
摘要: "Link" 预处理一下每个串从左往右和从右往左的哈希值。 然后枚举忽略的是哪一位,然后计算出每个串在忽略这一位下的哈希值。 接下来就是要计算有多少对哈希值相同的串,可以通过排序/哈希等方法解决。 阅读全文
posted @ 2020-01-21 10:35 Shiina_Mashiro 阅读(129) 评论(0) 推荐(0) 编辑
摘要: "Link" 首先显然合法的$T$都是$S$的$pre$。 如果一个位置的回文半径达到了$S$的末尾,那么这个位置一定是合法的。 同时如果一个位置的回文半径达到了$S$的开头并且末尾的位置是合法的,那么这个位置也是合法的。 可以证明其它的位置一定不合法。 阅读全文
posted @ 2020-01-21 10:16 Shiina_Mashiro 阅读(120) 评论(0) 推荐(0) 编辑
摘要: ##Definition 一个确定有限状态自动机(DFA)$M=(Q,\Sigma,\delta,q_0,F)$由以下五个部分组成: $1.$状态集合\(Q\) $2.\(**字符集**\)\Sigma$ $3.\(**转移函数**\)\delta:Q\times\Sigma\rightarrow 阅读全文
posted @ 2020-01-20 20:16 Shiina_Mashiro 阅读(392) 评论(0) 推荐(0) 编辑
摘要: "Link" 我们知道一条边被所有路径经过就是其一个端点的子树中包含了所有路径的一端。 那么我们可以给每条路径的端点rand一个随机权值,然后用LCT维护子树异或和,查询就是看子树异或和是否等于所有随机权值的异或和。 LCT维护子树信息+单点修改就是多维护一个虚子树信息,改变虚边的时候修改一下就好了 阅读全文
posted @ 2020-01-20 19:20 Shiina_Mashiro 阅读(147) 评论(0) 推荐(0) 编辑
摘要: "Link" 首先可以发现这个换根是个假的,我们可以通过dfs序把这棵树拍成序列,那么不论怎么换根一个点的子树最多是两个区间,这个随便讨论一下就行了。 然后就是 "Link" 了,直接做就好了。 阅读全文
posted @ 2020-01-20 16:35 Shiina_Mashiro 阅读(134) 评论(0) 推荐(0) 编辑
摘要: "Link" 简记$f(i,x)=get(1,i,x)$。 首先拆询问,答案就变成了$\sum\limits_xf(r_1,x)f(r_2,x)+f(l_1 1,x)f(l_2 1,x) f(l_1 1,x)f(r_2,x) f(l_2 1,x)f(r_1,x)$。 然后我们用类似于莫队的套路搞搞就 阅读全文
posted @ 2020-01-20 16:31 Shiina_Mashiro 阅读(95) 评论(0) 推荐(0) 编辑
摘要: "Link" 开一个桶记录每个数字出现过多少次,同时用bitset维护$x$是否出现过。 那么查询是否有两个数的差为$x$就是把bitset右移$x$位然后与自己,如果有位置为$1$那么就说明存在。 查询是否有两个数的和为$x$也可以类似地做,多开一个bitset维护$10^5 x$是否出现过。 查 阅读全文
posted @ 2020-01-20 11:38 Shiina_Mashiro 阅读(160) 评论(0) 推荐(0) 编辑
摘要: "Link" 设个阈值$s$。 对于$\le s$的模数,插入时暴力更新。 对于$ s$的模数,把插入的数搞到一个set里面,每次查询$\bmod x$的最小值时就枚举$x$的倍数,lower_bound一下取个$\min$就好了。 显然当$s=\sqrt{n\log n}$时取到最优复杂度$O(n 阅读全文
posted @ 2020-01-18 22:03 Shiina_Mashiro 阅读(133) 评论(0) 推荐(0) 编辑
上一页 1 ··· 31 32 33 34 35 36 37 38 39 ··· 55 下一页