摘要: ##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) 编辑