03 2020 档案

摘要:什么是 FWT FWT 全称为 " 快速沃尔什变换: Fast Walsh Transform " 。可以用于解决位运算卷积的问题。 什么叫位运算卷积呢?我们考虑普通的卷积,即: Ck=i+j=kAiBj 位运算卷积就是下标为位运算的卷积(此处与和或用 C++ 记号,异或 阅读全文
posted @ 2020-03-29 23:38 crashed 阅读(528) 评论(0) 推荐(4) 编辑
摘要:题目 点这里看题目。 分析 不难发现,设两人取得的下标集合为SaSb,那么符合要求的下标集合对需要满足SaSb对应的值全部异或起来为 0 。 因此,我们可以考虑异或为0的下标集合S,它对答案的贡献就是2|S|。 根据这个思想,我们可以考虑如下的 DP : 阅读全文
posted @ 2020-03-29 18:14 crashed 阅读(131) 评论(0) 推荐(0) 编辑
摘要:题目 "点这里" 看题目。 分析 第一步可以将A数组转化成概率P(j):每一步操作异或j的概率。 接着发现,x0变成i的期望等于xi变成0的期望。 这样我们的起点虽然不一样,但是终点就是一样的。这样我们可以套用随机游走的模型: f(i):从i为起点变成 阅读全文
posted @ 2020-03-29 16:00 crashed 阅读(267) 评论(0) 推荐(0) 编辑
摘要:题目 "点这里" 看题目。 "备用网址" 。 分析 考虑容斥地计算合法路径。即用总路径的积除以不合法路径的积。 分别考虑每条边对总路径的贡献。如果一条边左连通块大小a,右连通块大小b,权为w,则它的贡献为wab。 接着考虑不合法的路径。我们用(a,b)表示一条路径(路径有$ 阅读全文
posted @ 2020-03-29 13:11 crashed 阅读(113) 评论(0) 推荐(0) 编辑
摘要:题目 "点这里" 看题目。 BZOJ 上是权限题目。 分析 这道题可以用点分治,但是我就是喜欢边分治 QAQ 。 分治过程中,我们考虑经过分治边的路径的最大痛苦值。一条经过分治边的路径会被分治边划分成两段(不包括分治边),我们只需要在它的最小值的那一段将它计入答案。 也就是说,对于每一条从分治块中一 阅读全文
posted @ 2020-03-29 12:53 crashed 阅读(131) 评论(0) 推荐(0) 编辑
摘要:题目 "点这里" 看题目。 分析 设count(x)x的二进制中1的个数。因此f(u,v)=count(uv) 看一看每次转移,我们发现最不友好的东西就是f(u,v),因此我们得想办法把它从我们的计算中丢掉。 发现对于[0,n)中的所有数,两两异或之后不会超过 阅读全文
posted @ 2020-03-27 19:53 crashed 阅读(121) 评论(0) 推荐(0) 编辑
摘要:题目 "点这里" 看题目。 分析 不难想到这样的 DP : f(u,j):以u为根的连通块中异或值j的子树的个数。 转移类似于背包,设已经合并到u上的信息为g,得到: f(u,j)=(u,v)Eik=jg(i)f(v,k) 阅读全文
posted @ 2020-03-27 19:51 crashed 阅读(75) 评论(0) 推荐(0) 编辑
摘要:题目 "点这里" 看题目。 BZOJ 上面是权限题目。 分析 第 K 小的问题无非两种方法——构造法或者二分法。 很显然如果构造的话在这里不太好处理,因此我们可以对于每一个点u,二分一下这个第 K 小路的长度。 检查的方法很简单,也就是计算一下从u出发的路径中,是否有 K 条以上的路径的长度 阅读全文
posted @ 2020-03-27 19:49 crashed 阅读(102) 评论(0) 推荐(0) 编辑
摘要:题目 点这里看题目。 分析 我们不妨来考虑一下生成的序列有什么性质。 为了方便表示,我们将序列S的第i项写为S[i]。 首先考虑如果所有的A序列都是递增的,那么我们得到的序列肯定是递增的。如果存在递减的情况,例如其中某个序列BA1,A2,,An,存在$B 阅读全文
posted @ 2020-03-27 19:43 crashed 阅读(210) 评论(0) 推荐(0) 编辑
摘要:题目 "点这里" 看题目。 分析 关于树上路径的统计问题,我们不难想到用点分治。而这道题存在修改,因此我们用 " 动态点分治 "。 考虑正常的点分治,我们在每一层点分治中求的是经过当前点的最大关灯点距离。我们先求出本层中所有关灯点到自己的距离,并取其中 来自不同子树 的最大值和次大值,相加得到本层的 阅读全文
posted @ 2020-03-27 19:39 crashed 阅读(112) 评论(0) 推荐(0) 编辑
摘要:题目 "点这里" 看题目。 BZOJ 目测......是炸了。 分析 动态点分治入门题。 首先理解什么叫 " 动态点分治 "。 一般点分治需要离线解决,不带修改。动态点分治可以用点分治的方法在线解决问题,支持修改。 在点分治的过程中,每个点都会成为一次分治中心进行计算。如果我们将点按照计算顺序连成一 阅读全文
posted @ 2020-03-27 19:36 crashed 阅读(69) 评论(0) 推荐(0) 编辑
摘要:题目 "点这里" 看题目。 BZOJ 上这还是权限题。 分析 不难发现,最后我们走过的点一定组成了树上的一个连通块。 如何枚举树上一个连通块?我们可以想到用点分治。由于每一次我们进行分治之后会进行子树继续分治,这就相当于将原图变成了几个连通块。我们只需要对于每次分治,将分治中心设定为 “ 必选 ” 阅读全文
posted @ 2020-03-27 19:31 crashed 阅读(99) 评论(0) 推荐(0) 编辑
摘要:题目 点这里看题目。 分析 是挺奇怪的...... 以下定义质数集合为Ppi为第i个质数。 定义mp(x)x的最小质因子,则可以得到: sgcd(a,b)=gcd(a,b)mp(gcd(a,b)) 这个比较显然。然后可以娴熟地变换式子得到: \ 阅读全文
posted @ 2020-03-27 19:26 crashed 阅读(134) 评论(0) 推荐(0) 编辑
摘要:题目 设a,b分别为1n的排列。 求有多少个排列对(a,b)满足i=1nmax{ai,bi}m。 两个排列对(a,b)(c,d)不同当且仅当存在一个i,使得aici或者bidi。 数据范围为 阅读全文
posted @ 2020-03-27 19:22 crashed 阅读(87) 评论(0) 推荐(0) 编辑
摘要:题目 点这里看题目。 分析 我们先放宽条件,重新定义五元组(a,b,c,d,e)如下: 1.1a,b,c,d,en。 2.sa&sb=0。 并且设$v(a,b,c,d,e)=(s_a|s_b)&s_c&(s_d\oplus s_e)\oplus 阅读全文
posted @ 2020-03-27 18:44 crashed 阅读(134) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示