
数学
文章平均质量分 71
数论,概率论等
SHOHOKUKU
这个作者很懒,什么都没留下…
展开
-
Codeforces 1986 G2 数论 + 暴力
再枚举其因子,并根据计数数组统计答案。内数字的最大因子数。按照值域用一个计数数组维护;只处理依次,均摊时间复杂度。不一定是一个排列,则每一个。仅被其因子扫描到,而由于。原创 2024-07-05 09:49:36 · 924 阅读 · 0 评论 -
LeeCode 1728 任意图上博弈
具体而言,将博弈双方位置加之先后手状态看作任意图上的一个节点。对于可以确定胜负态的节点,以其为起点,使用类似拓扑序更新的操作不断递推其余节点的状态。的方格,任意图博弈求解时间复杂度为。任意图上博弈,可参考。原创 2024-04-30 22:38:55 · 261 阅读 · 0 评论 -
LeeCode 3130 DP / 组合数学
可以通过维护前缀和,或者直接利用递推关系作差分,优化掉枚举序列长度这一维。如下采用维护前缀和进行优化,时间复杂度。0/1子段可以分别独立地统计满足条件的序列数量,最后相乘即可。以0为例,假设其子段数量为。那么只需要暴力枚举每一段连续且元素相同的序列长度,递推即可。可以通过枚举连续的0/1的子段的数量统计答案。具体而言,令0的段数量为。,则每一段至少需要分配一个0。故剩余可自由分配的0数量为。,因为0/1子段是交错的,故1的段数量仅有。个桶且每个桶的元素数量不大于等于。的方案数,可以通过容斥原理。原创 2024-04-29 23:15:35 · 670 阅读 · 0 评论 -
AtCoder ABC 328G 状态压缩 DP + 复杂度分析
另一种方案是枚举分割的段,此时每一个连续的段(除了起始段)操作 1 贡献是。的位置,都至少要分割一次,且仅需这样的分割就可以得到。容易想到两类计算分割贡献的方案。实际上,这是一个宽松的界,对于每一个段的长度。不考虑分割贡献,则需要维护两个变量:集合。,对于每一个状态,可能的段规模为。实际上,只需要维护前者,因为。经过操作 1 变换为排列。,实际上对应的状态数为。,转移时可以直接判断。原创 2024-02-15 22:14:47 · 946 阅读 · 0 评论 -
Codeforces 1860F 计算几何 / 数学
将这些位置逆时针排序,依次处理,每次次序发生交换的点一定是位于数个连续区间,那么把这些可能交换的点单独进行排序,每个点对均摊处理。时,数个点的点积相同,此时左括号置于前面(根据括号的性质,所有前缀和非负,则满足条件)。具体实现上,对于相邻位置。,观察到仅当两个平面的交线的两侧,次序交换。点对,可以得到所有可能出现点次序交换的位置。情况下的次序,不断维护相邻点发生交换的。与上述计算几何方法原理相同,将。两侧,点对的次序固定;,直观上即二维平面的直线随着。原创 2024-02-03 20:14:52 · 957 阅读 · 0 评论 -
AtCoder 327G 组合数学
的求解,观察到联通二分图的染色方案只有两种,那么先求出可以黑白染色的二分连通图数量,最后像背包问题一样不断累加联通分量即可。看作一条边并建图,序列对满足条件当且仅当所构造的图为二分图。为将图中节点二分染色后,相同颜色的节点间不存在连边的方案书;根据容斥原理,考虑简单图上部分边没有分配。枚举图中编号最小的节点所在联通分量的情况,则可以容斥得到。条边中至少一条的情况,可以得到。为二分图边数的最大值,其等于。的有序性,每一条边贡献为。代表代标号的节点数为。的简单二分图的方案书;中联通图的数量,则有。原创 2023-11-07 22:47:06 · 197 阅读 · 0 评论 -
Codeforces 1855E 数学期望 + DP
根据数学期望的线性性质,可以独立地考虑每一个。的情况看作后者消失,则。对答案的贡献,则答案为。原创 2023-11-02 23:02:48 · 339 阅读 · 0 评论 -
AtCoder ABC322G 数学 + 暴力
根据 $1\leq X$,以及 $f(S,a)$ 关于 $a$ 的递增性,可以得到 $b原创 2023-10-13 16:38:07 · 244 阅读 · 0 评论 -
AtCoder ABC260 F 暴力 + 鸽巢定理
只要其中一对节点满足被枚举到两次,那么就找到了一个满足条件的四元组。根据鸽巢定理,总时间复杂度为。构造邻接表,枚举规模较大的一侧点集。,枚举每一对连边的端点,这样的点对数量为。满足条件的四元组可以表示为。原创 2023-09-21 21:14:04 · 122 阅读 · 0 评论 -
AtCoder ABC 319E 中国剩余定理
同时考虑线性同余方程组的求解,相反方向的推论也成立。虽然不一定互素,但转化的思想基本一致,即:令。对于停车点间的每一段距离,仅跟抵达前驱车站模。原创 2023-09-19 17:23:09 · 165 阅读 · 0 评论 -
AtCoder ARC106 E Hall 定理 + 二分 + 容斥原理 + 高维前后缀和
因为每一个职工的休息日之前总是对应唯一的工作日。预处理出每一天可以选择的用户集合。二分确定工作时长之后,可以统计出对于每一个确定的用户集合。的并集的规模,使用容斥原理,求高维前缀和即可。但二分图规模过大,直接求解最大匹配显然难以胜任。问题可以转化为每一天与职员之间的匹配问题,思路与。,与其存在连边的二分图另一侧节点的数量要大于等于。根据 Hall 定理,若二分图一侧点集。都能被匹配的充要条件是,对于。被选择的日子的集合。做高维后缀和,就能求出。的交集的规模,为了求出。,其恰好能被选择的天数。原创 2023-09-19 11:41:23 · 245 阅读 · 0 评论 -
P4245 MTT
使用三模数NTT 求解,最后根据中国剩余定理合并即可。考虑到数据范围,需要使用 __int128。范围的多项式,结果多项式的每一项系数上界为。范围的模数以及最高次在。原创 2023-09-11 17:54:08 · 373 阅读 · 0 评论 -
HDU 6391 组合数学 + DP
异或进来后,异或和为 0 和 1 的数量,对应的贡献为。,这些数字异或和中 1 的数量为。之前出现过的情况,对应的贡献为。可以为任意数字,那么要从。的排列,最后答案除以。原创 2023-07-31 21:05:22 · 174 阅读 · 0 评论 -
Codeforces 1611G 贪心 + 二分 / Dilworth 定理 + DP
根据 Dilworth 定理,最小链划分等于最长反链。,维护一个已使用的 Robot 集合,对于任一个有物品的节点。,二分求解恰好能走到此节点的 Robot,安排其走到。,DP 求解最长反链即可。此处反链上任一对节点。奇偶性不变,故可以根据奇偶性分别求解。反之,新增 Robot。原创 2023-05-29 22:33:45 · 545 阅读 · 0 评论 -
CodeChef - COVERING 高维前后缀和 + 容斥原理
令 $$T(S) = \sum\limits_{(A\cup B\cup C) = S} F(A)G(B)H(C)$$ 二进制状态压缩表示 $S$,则 $R(S)$ 是关于 $T(S)$ 的高维后缀和,即 $$R(S)=\sum\limits_{A\in S}T(A)$$ 问题转换为如何求解 $T(S)$。考虑每一个元素是否存在,即二进制表示下每一位是否为零,可以应用容斥原理得到原创 2022-10-28 17:57:56 · 749 阅读 · 1 评论 -
P8193 [USACO22FEB] 高维前缀和
令 $s = \sum a_i$,$presum_i = \sum_{j\leq i}a_j$。对于第 $i$ 个询问,存在满足条件操作的充要条件是 $q_i\vert s$。令 $x = \sum [presum_i \mod q_i = 0]$。 至少需要合并的次数为 $n-x$,至少需要分裂的次数为 $s/q_i-x$,且这样的操作可以满足条件。答案为 $n + s/q_i -2x$。原创 2022-10-20 19:34:55 · 388 阅读 · 0 评论 -
Codeforces 622F 拉格朗日插值 + 线性筛
$\sum\limits_{i=1}^{n}i^k$ 是一个关于 $n$ 的 $k + 1$ 次多项式。用 $1,2,3\cdots k + 2$ 共 $k+2$ 个值,进行拉格朗日插值。令 $f(n) = \sum\limits_{i=1}^{n}i^k$。得到$$f(x) = \sum\limits_{i=1}^{k+2}f(i)\prod\limits_{j=1,j\neq i}^{k+2}\frac{x-j}{i-j}$$原创 2022-10-09 23:21:14 · 207 阅读 · 0 评论 -
P3643 [APIO2016] DP
令值域规模为 $M$。朴素的 DP 是 $O\Big((NM)^2\Big)$,前缀和优化后可以做到 $O(N^2M)$。由于 $M$ 规模为 $10^9$,考虑离散化;为了方便处理,将区间表示为左闭右开。原创 2022-08-12 12:09:02 · 148 阅读 · 0 评论 -
P3723 [AH2017/HNOI2017] NTT
题意传送门 P3723 [AH2017/HNOI2017]礼物题解增加的值 c≥0c\geq 0c≥0,需要讨论 xi+cx_i+cxi+c 与 yi+cy_i+cyi+c 的情况。仅讨论第一种。minc,k∑i=0n−1(xi+c−yi+kmod n)2\min\limits_{c,k}\sum\limits_{i=0}^{n-1} (x_i + c - y_{i+k \mod n})^2c,kmini=0∑n−1(xi+c−yi+kmodn)2将式子拆开得到minc,k{∑原创 2022-04-11 10:22:46 · 554 阅读 · 0 评论 -
P3338 [ZJOI2014] FFT
题意传送门 P3338 [ZJOI2014]力题解对于左右两项,分别令 k=j−i,k=i−jk = j - i, k = i - jk=j−i,k=i−jEj=∑k=1j−1qj−kk2−∑k=1n−jqj+kk2E_j = \sum\limits_{k=1}^{j-1}\frac{q_{j-k}}{k^2} - \sum\limits_{k=1}^{n-j}\frac{q_{j+k}}{k^2}Ej=k=1∑j−1k2qj−k−k=1∑n−jk2qj+k 令 gk=1/k2,fk=原创 2022-04-10 09:00:55 · 164 阅读 · 0 评论 -
TopCoder 12910 NTT
题意传送门 TopCoder 12910 SumOfArrays题解将数组表示 a,b,ca,b,ca,b,c,令 A,B,CA,B,CA,B,C 表示数组不同值出现的次数。暴力求解 O(n2)O(n^2)O(n2)。Ck=∑imin(Ai,Bk−i)=∑i∑j=1∞[Ai≥j][Bk−i≥j]C_k = \sum\limits_i \min (A_i, B_{k-i}) = \sum_i \sum\limits_{j=1}^{\infty}[A_i\geq j][B_{k-i}\geq j]Ck原创 2022-04-08 15:45:55 · 275 阅读 · 0 评论 -
JAG 2013 Spring F 二维卷积
题意传送门 JAG 2013 Spring F Point Distance题解将距离看作二元组 (x,y)(x,y)(x,y),此时行列指标的差都是线性的。对于 (0,0)(0,0)(0,0),数量为 ∑ci,j(ci,j−1)/2\sum c_{i,j}(c_{i,j}-1)/2∑ci,j(ci,j−1)/2。对于 (x,0),(0,y)(x,0), (0,y)(x,0),(0,y),枚举行列分别做一维卷积。以 (0,y)(0,y)(0,y) 为例,枚举行 iii,求 ∑ci,jci,j+y原创 2022-04-08 11:33:44 · 152 阅读 · 0 评论 -
BZOJ 3451 点分治 + NTT
题意传送门 BZOJ 3451 Tyvj1953 Normal 题解若 vvv 取为分治中心时,uuu 与 vvv 连通,则 uuu 贡献为 111。u,vu,vu,v 再 vvv 取为分治中心时连通的条件为 u,vu,vu,v 路径上任意节点都未被选取为分支中心,不属于路径上的节点对于这个概率没有影响,则概率等价于 u,vu,vu,v 路径上的点中,vvv 被首先选取的概率,其等于 1/(dist(u,v)+1)1/\Big(dist(u,v) + 1\Big)1/(dist(u,v)+1)总贡献原创 2022-04-07 12:56:03 · 269 阅读 · 0 评论 -
CodeChef COUNTARI 分块 + FFT
题意传送门 CodeChef - COUNTARI Arithmetic Progressions题解求满足 2aj=ai+ak,i<j<k2a_j = a_i + a_k,i<j<k2aj=ai+ak,i<j<k 的三元组数量。直接卷积后枚举 jjj,难以处理非法三元组的贡献;枚举 jjj 对左右两侧进行卷积,时间复杂度过高。考虑分块,块大小为 ccc。对于处于三个不同块的三元组, 枚举 jjj 所在块,对两侧块卷积,时间复杂度 O(n2/clogn)O原创 2022-04-07 12:51:50 · 744 阅读 · 0 评论 -
HDU 4609 FFT
题意传送门 HDU 4609 3-idiots题解NNN 个数中任取三个,求选择的数可以作为三角形边长的概率。对于三角形的判定条件,即 ai+aj>ak,ak≥aj,aia_i+a_j>a_k, a_k\geq a_j,a_iai+aj>ak,ak≥aj,ai。计数时还需考虑所选择的数互不相同。令 A(x)=∑xaiA(x)=\sum x^{a_i}A(x)=∑xai,简单起见写为 ∑x\sum x∑x,根据容斥原理,考虑相同项的数量,可以得到 (∑x)2=∑x2+2原创 2022-04-06 16:04:01 · 497 阅读 · 0 评论 -
计蒜客 A1607 贪心 + 线性基
题意传送门 计蒜客 A1607 XOR题解不考虑 kkk 时,查询区间子序列异或最大值,即 Codeforces 1100F ,枚举右界,贪心地使位数高的线性基出现的位置尽可能地晚,最后处理包含在查询区间的线性基即可。本题目标是最大化 kkk 与区间某个子序列异或和的按位或。考虑按位或的性质,若 kkk 第 iii 位为 111,那么不论异或和是什么,结果的第 iii 位都是 111。那么将所有 aia_iai 按位与上 kkk 的按位反转,问题就转换为求解最大化不考虑 kkk 的最大异或值。#原创 2022-04-03 15:45:32 · 1435 阅读 · 0 评论 -
SPOJ TSUM 容斥原理 + FFT
题意传送门 SPOJ TSUM题解若三元组无约束,则令 A(x)=∑xaiA(x)=\sum x^{a_i}A(x)=∑xai,答案为 [xs]A3(x)[x^s]A^3(x)[xs]A3(x)。考虑 i<j<ki<j<ki<j<k,那么需要减去存在相同项的乘积的贡献。简单起见,令 A(x)=∑xA(x) = \sum xA(x)=∑x,和式中的不同变量代表不同的项。根据容斥原理(∑x)3=∑x3+3∑x2y+6∑xyz(\sum x)^3 =\sum x^原创 2022-04-02 23:29:01 · 206 阅读 · 0 评论 -
P1450 [HAOI2008] 容斥原理 + DP
题意传送门 P1450 [HAOI2008]硬币购物题解求满足 ∑xkck=s\sum x_k c_k = s∑xkck=s 的非负整数解个数。令 SkS_kSk 代表满足 xk≤dkx_k \leq d_kxk≤dk 的解集。问题即求∩Sk=∪Sk‾‾\cap S_k = \overline{\cup \overline{S_k}}∩Sk=∪Sk 则转换为存在下界约束的方程,以 Sk‾\overline{S_k}Sk 为例,下界约束 xk≥dk+1x_k\geq d_k+1原创 2022-03-31 20:24:16 · 973 阅读 · 0 评论 -
Ural 1560 牛顿恒等式 + 线段树
题意传送门 Ural 1560 Elementary Symmetric Functions题解根据牛顿恒等式∑i=1kSibk−i+k×bk=0,k∈N+\sum\limits_{i=1}^{k} S_ib_{k-i} + k\times b_k = 0, k\in N^+i=1∑kSibk−i+k×bk=0,k∈N+ 其中 Sk=∑l≤i≤raikS_k = \sum_{l\leq i\leq r} a_i^kSk=∑l≤i≤raik,且 bk=(−1)kfkb_k = (-1)^原创 2022-03-31 19:40:36 · 621 阅读 · 0 评论 -
P5516 [MtOI2019] 数学期望 + 高斯消元
题意传送门 P5516 [MtOI2019]小铃的烦恼题解令所有的书魔法属性都一样时为终止状态,考虑统计各个终止状态的贡献。固定终止状态的属性值 aaa,那么只关注属性为 aaa 与属性不为 aaa 的书籍即可。fkf_kfk 代表当前属性为 aaa 的书籍有 kkk 本,令p=k(n−k)n(n−1)p = \frac{k(n-k)}{n(n-1)}p=n(n−1)k(n−k) 考虑任意一步状态转移,则 fkf_{k}fk 向 fk−1,fk+1f_{k-1}, f_{k+1}fk−1,原创 2022-03-26 17:07:40 · 1010 阅读 · 0 评论 -
SGU 491 约数
题意传送门 SGU 491题解枚举 BBB 与 yyy,枚举总次数为 O(nlogn)O(n\log n)O(nlogn)。若 Ax+By=NAx+By = NAx+By=N,则 AAA 是 N−ByN-ByN−By 的约数。对于固定的 ByByBy,枚举满足 A<BA<BA<B 的约数。预处理 [1,n][1,n][1,n] 的约数,总数是 O(nlogn)O(n\log n)O(nlogn),故枚举约数均摊是 O(logn)O(\log n)O(logn),总枚举次数 O(原创 2022-03-25 11:17:14 · 853 阅读 · 0 评论 -
P3292 [SCOI2016] 贪心 + 线性基 + LCA
题意传送门 P3292 [SCOI2016]幸运数字题解求树上两点间路径任意数字的异或最大值。求出线性基即可。不妨设 O(logG)O(\log G)O(logG) 与 O(logn)O(\log n)O(logn) 同一量级。考虑倍增,由于涉及两段路径的线性基合并,预处理 O(nlog3n)O(n\log^3n)O(nlog3n),查询 O(qlog3n)O(q\log^3 n)O(qlog3n)。显然难以胜任。考虑点分治,维护任一节点到重心路径上的线性基,此时只用考虑单个节点点值的插入原创 2022-03-24 21:31:55 · 630 阅读 · 0 评论 -
P4301 [CQOI2013] 贪心 + 线性基
题意传送门 P4301 [CQOI2013] 新Nim游戏题解Nim 游戏中,所有堆异或和非零则先手必胜,反之先手必败。若第一次取走 k−1k-1k−1 堆,则可以保证按原始 Nim 游戏规则开始游戏时,所有堆异或和非零。故一定可以保证取胜。当且仅当第一回合结束时,剩下的堆的数字在异或运算下线性无关,保证取胜。还要最小化第一回合取的数,那么问题转换为求一组异或运算下线性无关的数字,使其数字和最大。根据贪心策略,应该取一组线性基,即异或运算下的极大无关组,且每个主元对应的基的数字要尽可能大。若在当前原创 2022-03-24 17:05:11 · 4302 阅读 · 0 评论 -
P2447 [SDOI2010] 高斯消元 + bitset
题意传送门 P2447 [SDOI2010] 外星千足虫题解奇偶性的加减运算等价于按位异或运算,那么求解异或线性方程组即可。使用 std::bitset 优化,总时间复杂度 O(mn2/32)O(mn^2/32)O(mn2/32)。#include <bits/stdc++.h>using namespace std;#define pb push_backconst int MAXN = 1E3 + 5;typedef bitset<MAXN> bt;int N,原创 2022-03-22 16:07:43 · 710 阅读 · 0 评论 -
P4000 生日悖论 + 矩阵快速幂
题意传送门 P4000 斐波那契数列题解斐波那契数列模 ppp 意义下循环节长度 π(p)≤6p\pi(p)\leq 6pπ(p)≤6p。求出循环节后,就能对指标取模,通过矩阵快速幂求出答案。问题在于如何求出循环节长度。任取两个不同的指标 i,ji,ji,j,若满足 fi=fj,fi+1=fj+1f_i = f_j, f_{i+1} = f_{j+1}fi=fj,fi+1=fj+1,那么 ∣i−j∣\vert i-j\vert∣i−j∣ 为循环节的倍数。形式上与生日悖论类似,那么随机地取原创 2022-03-20 11:21:31 · 320 阅读 · 0 评论 -
P2065 [TJOI2011] 线性筛 + Dinic
题解传送门 P2065 [TJOI2011]卡片题解若两张卡片能够组成一组,则连一条边,问题转化为求图中的最大二分匹配。直接建图,边数为 O(nm)O(nm)O(nm),应用 Dinic 算法也难以胜任。考虑优化建图,任一个数字 aaa 只有 O(loga)O(\log a)O(loga) 种质因子,将出现的质因子建为虚节点,那么二分图左右部节点通过虚节点连接,此时点、边数都为 O(nlogn+mlogm)O(n\log n+m\log m)O(nlogn+mlogm)。跑 Dinic 即可。原创 2022-03-19 17:31:29 · 161 阅读 · 0 评论 -
Codeforces 1642F bitset / Trie
题意传送门 Coodeforces 1642F Two Arrays题解bitset将数组按照 www 升序排序。std::bitset 维护存在值 ai,ja_{i,j}ai,j 的数组 iii 的集合。枚举数组,O(m)O(m)O(m) 处理出与其存在相同元素的数组集合。时空复杂度均为 O(n2m/32)O(n^2m/32)O(n2m/32)。可以通过将包含较少元素的集合暴力处理,较多元素的集合用 std::bitset 维护的方法,降低空间开销。#include <bits/stdc原创 2022-03-01 20:28:22 · 308 阅读 · 0 评论 -
Codeforces 559D Pick 定理 + 数学期望
题解传送门 Codeforces 559D Randomizer题解已知 nnn 个点构成的严格凸多边形,求其中可构成非退化的凸多边形点集,所构成的多边形内部格点(整数坐标点)数量的数学期望。满足条件的点集规模至少为 333。这样的点集构成的凸多边形可以看作是原始凸多边形切割数个凸多边形后得到。那么可以枚举 O(n2)O(n^2)O(n2) 的被切割的凸多边形,计算不被包含在多边形内部格点数量的数学期望。假设任意所有原始凸多边形内部的格点都被点的子集构成的凸多边形包含,最后减去上述数学期望,即为所求原创 2022-02-26 22:00:30 · 263 阅读 · 0 评论 -
Codeforces Round #772 (Div. 2)
传送门Codeforces Round #772 (Div. 2)A按位考虑,若存在第 kkk 位为 111 的元素,则可以用这个元素将其余元素的第 kkk 位变为 000;为满足操作的约束,存在 111 的每个数位至少需要保留一个元素。故最小和为所有元素的按位或。总时间复杂度 O(n)O(n)O(n)。#include <bits/stdc++.h>using namespace std;#define pb push_backtypedef long long ll;cons原创 2022-02-23 16:56:31 · 243 阅读 · 0 评论 -
Codeforces 1325F DFS 树
题意传送门 Codeforces 1325F Ehab’s Last Theorem题解令 sq=⌈n⌉sq = \lceil \sqrt{n}\rceilsq=⌈n⌉,构造 DFSDFSDFS 树,若存在返祖边包含至少 sqsqsq 个节点,则找到了一个满足要求的简单环。否则,任一节点的返祖边及其与父节点的连边的数量至多为 sq−2sq-2sq−2;故将任一节点包含于独立集,至多需要排除 sq−2sq-2sq−2 个节点。则自底向上不断向独立集添加点,至少可以包含 sqsqsq 个点(也可以通过原创 2022-02-17 17:19:39 · 200 阅读 · 0 评论