![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数论
文章平均质量分 79
sharp_legendgod
这个作者很懒,什么都没留下…
展开
-
Hdu6355 Fireflies 题解
Hdu6355 FirefliesHdu6355 Fireflies发现网上没有什么题解 …\dots…题目描述在一个 nnn 维度的超立方体,每一维度的大小是 pip_ipi。你可以在任意位置放一个萤火虫,萤火虫每次只能在一个维度移动一个单位,对于 xi→yix_i \to y_ixi→yi 需要保证 xi+1=yix_i + 1 = y_ixi+1=yi,而且不能超过超立方体。求最开始最少放多少个,才能保证存在一种方案,对于每一个单位空间都有一个萤火虫遍历它。我们考虑原创 2021-10-09 15:34:10 · 129 阅读 · 0 评论 -
最小链覆盖 Dilworth’stheorem
话说这个专题网上的讲解都没有很全,窝就将他们的总和一下。如果有问题请私信,评论。首先说一下最小链覆盖定理,这个本质上是有点抽象的。偏序集\color{red} \text{偏序集}偏序集的概念:我们设当前的全集为 XXX。也就是一个 偏序集\color{red}\text{偏序集}偏序集,因为其元素部分可以比较大小。链对于 XXX 的一个子集满足其是全序集,及其所有的元素可以比较大小。反链对于 XXX 的一个子集,满足其任意非空子集都不是全序集, 即所有的元素不能比较大小。链覆盖若干个链原创 2021-10-08 15:13:55 · 588 阅读 · 0 评论 -
CF618G Combining Slimes 题解
CF618G Combining SlimesCF618G Combining Slimes首先考虑根据期望的线性性质对于每一个数分开来计算贡献,之后再求出每一个数出现的概率即可。也不是很清楚这个东西是不是线性性质。但是说实话就是对于所有数一起考虑是不能入手的。之后我们发现事实上任意的数都有可能出现,发现其没有取模,我们不妨计算一下一个数可能出现的概率。如果说这个数是 xxx,那么其概率是 (1−10−9)2x−1(1 - 10^{-9})^{2^{x - 1}}(1−10−9)2x−1原创 2021-09-25 10:26:20 · 205 阅读 · 0 评论 -
P1463 [POI2001][HAOI2007]反素数 题解
关于洛谷P1436的题解题意分析首先这是一个数论题鬼都知道讲解(有区别吗?)根据数据分析得出2^9<前十个质数的乘积由此判断出所有数中所含有的质数不会超过十个即2,3,5,7,11,13,17,19,23,29,31因为每个数都可以分成(质数除外)若干质数的乘积此题中只有10个质数那么 判断约数的公式为f(n)=(a1+1)(a2+1)…(an+1)...原创 2019-08-24 21:44:43 · 518 阅读 · 0 评论 -
CF718C Sasha and Array 题解
CF718C Sasha and ArrayCF718C Sasha and Array重点:矩阵乘法 a×(b+c)=ab+aca\times(b + c) = ab + aca×(b+c)=ab+ac。而且矩阵乘法是有结合律的:a×b×c=a×(b×c)a \times b \times c = a\times (b\times c)a×b×c=a×(b×c)但是 没有\color{red}\text{没有}没有 交换律!!发现这个下标的信息不是很好维护我们考虑将其放到矩阵里面进行维原创 2021-09-23 10:27:58 · 155 阅读 · 0 评论 -
P5151 HKE与他的小朋友 题解(置换)
P5151 HKE与他的小朋友P5151 HKE与他的小朋友说实在的这个对于置换的理解需要略微深一点。首先可以直接将其看成一个置换:[12345…na1a2a3a4a5…an]\left[\begin{matrix}1 & 2 & 3 & 4 & 5 & \dots & n \\a_1 & a_2 & a_3 & a_4 & a_5 & \dots & a_n\end{matrix}\ri原创 2021-09-23 08:49:44 · 94 阅读 · 0 评论 -
生成排列和子集
生成排列和子集这个只是单纯的总结,之后肯定还会搞的(如果没有退役的话)。生成排列不妨以生成 1∼n1 \sim n1∼n 的排列进行举例子,我们对于每一个数字的上面先定一个箭头,表示其可以向那边走。一个数字移动的条件是其箭头指向的相邻的数组比其要小。例如 1←2←\overset{\leftarrow}{1}\overset{\leftarrow}{2}1←2← 这个时候 222 就是可以向左走一个位置的,也就是意味着下一个排列是 2←1←\overset{\leftarrow}{2}\ov原创 2021-09-17 14:38:52 · 104 阅读 · 0 评论 -
Codechef Dynamic GCD 题解
Codechef Dynamic GCD Codechef Dynamic GCD就是考虑维护链上 gcd\gcdgcd 和链加。我们先考虑这个东西放到序列上怎么做,首先进行差分,之后因为 gcd\gcdgcd 是不变的,但是区间加可以直接变成了单点修改用线段树进行维护即可。对于树上的情况,我们直接使用树链剖分进行分成若干条链进行计算。具体来说我们考虑对于一条链 u,v,fau=vu, v, fa_u = vu,v,fau=v,我们让节点 uuu 的值变成 av−aua_v - a_..原创 2021-09-15 19:21:33 · 210 阅读 · 0 评论 -
CF1043F Make It One 题解(反演,容斥)
CF1043F Make It OneCF1043F Make It One首先看一下质因子个数最多只有 666 个,考虑答案上界是多少。2 3 5 7 11 133 5 7 11 13 17不要忘记 171717。你们答案的上界就是 777。我们考虑对于 gcd\gcdgcd 进行卷积,那么我们需要使用容斥。考虑反演:g=f×If=g×μg = f \times I \\f = g \times \mug=f×If=g×μ原理就是 I×μ=eI \times \m原创 2021-09-14 19:47:00 · 112 阅读 · 0 评论 -
CF383E Vowels 题解
CF383E VowelsCF383E Vowels。emmm 可以自己想出来的简单题。就是考虑容斥,也就是 A∪B=A+B−A∩BA \cup B = A + B - A \cap BA∪B=A+B−A∩B。三个数的情况也是同理。发现每个字符串的长度 =3= 3=3 所以我们可以直接对于集合大小是 333 的进行暴力容斥计算。之后我们考虑集合的合并,直接进行状压 Dp\tt DpDp,我们考虑删除最前面和最后面的那一位的贡献之和减去同时删除的贡献即可。或者说我们可以考虑更好写的情况。我们原创 2021-09-14 19:08:39 · 211 阅读 · 0 评论 -
切比雪夫距离 入门例题
切比雪夫距离和曼哈顿距离 众所周知两个点 (x1,y1),(x2,y2)(x_1, y_1), (x_2, y_2)(x1,y1),(x2,y2) 的曼哈顿距离是 ∣x1−x2∣+∣y1−y2∣|x_1 - x_2| + |y_1 - y_2|∣x1−x2∣+∣y1−y2∣。显然我们可以通过不等式去掉绝对值 max(∣x1+y1+x2+y2∣,∣x1+y1−(x2+y2)∣)\max(|x_1 + y_1 + x_2 + y_2|, |x_1 + y_1 - (x_2 + y_2..原创 2021-09-11 16:42:48 · 1918 阅读 · 0 评论 -
CF804F Fake bullions 题解
CF804F Fake bullions说实话这题根据套路应该很容易做出来,但是感觉想要通过思维做出来 …\dots…一个二合一的题目。Part 1\tt Part\ 1Part 1首先考虑题目给定的限制,如果 u→vu \to vu→v 而且 uuu 的第 iii 个人有金条,那么 vvv 中第 jjj 个人有假金条当且仅当 Sux+i=Svy+jS_ux + i = S_vy + jSux+i=Svy+j 根据 Lucas\tt LucasLucas 定理可以得到符合原创 2021-09-02 19:01:00 · 91 阅读 · 0 评论 -
CF762F Tree nesting 题解
CF762F其实这个题也不是很复杂。首先题目背景里说的是一个联通子图!!!发现数据范围其实不是很大,我们不妨钦定一个节点为根SSS 的节点。那么本质上对于 SSS 中的每一个节点我们都需要对 TTT 进行一次匹配。显然因为是联通子图是不可能进行树哈希的,我们考虑进行树形 DpDpDp。不妨考虑设 f(u,v,S)f(u, v, S)f(u,v,S) 表示对于 u∈S,v∈Tu \in S, v \in Tu∈S,v∈T 的情况,已经匹配了 TTT 中集合 SSS 的方案数。但是题目中说明的是原创 2021-09-01 21:52:44 · 204 阅读 · 0 评论 -
分析时间复杂度,主定理,势能分析
emmm,先说明一下,作者其实不是很会,有些问题请指出。定义\color{red}\tt \text{定义}定义Θ(f(n))\Theta(f(n))Θ(f(n)) 表示时间复杂度渐进的上下界。Ω(f(n))\Omega(f(n))Ω(f(n)) 表示时间复杂度的下界。O(f(n))O(f(n))O(f(n)) 表示时间复杂度的上界。Master Theorem\color{red}\tt Master\ TheoremMaster Theorem设递推式 T(n)=.原创 2021-09-01 10:21:57 · 332 阅读 · 0 评论 -
CF756F 题解
CF756F原本以为校内有神仙要讲评这题,就赶快去做了。结果啊,是我题号记错的 …\dots…题目大意:给出一个字符串请解析这个字符串构成的数。l−rl - rl−r 表示 l∼rl \sim rl∼r 中的所有数, 8−108 -108−10 表示 891089108910。+x+ x+x 表示单纯增加一个 xxx,如 8−10+58-10+58−10+5 表示 891058910589105。我们称上面的这样的形式为表达式。对于 a(表达式)a(\text{表达式})a(表达式)原创 2021-08-27 13:49:11 · 200 阅读 · 0 评论 -
CF1548C The Three Little Pigs 题解
CF1548C The Three Little Pigs算基础的生成函数题了吧。反正当时隔壁老哥在打 VP 的时候,推了半天 CCC 没有推出来。被我一眼秒了 …\dots…就是答案肯定是 ∑i=0n(3ix)\sum_{i = 0} ^ {n} \binom{3i}{x}∑i=0n(x3i)。发现这个东西就是个二项式定理。那么如果写成生成函数就是 [zx](1+x)3i[z^x] (1 + x) ^ {3i}[zx](1+x)3i设 F(x)=∑i=0n(1+x)3iF(x) =原创 2021-08-27 08:29:52 · 137 阅读 · 0 评论 -
CF1528F AmShZ Farm 题解
CF1528F其实不难,但是又有懂得都懂的感觉。某谷的翻译真的鬼畜。题目大意:一个合法的序列 AAA 是 ∀j≤n,∑i=1n[ai≥j]≤n−j+1\forall j \le n, \sum_{i = 1} ^ n [a_i \ge j] \le n - j + 1∀j≤n,∑i=1n[ai≥j]≤n−j+1。给了一个限制 BBB 序列,要求 ab1=ab2=⋯=abka_{b_1} = a_{b_2} = \dots = a_{b_k}ab1=ab2=⋯=abk求这样原创 2021-08-26 21:45:25 · 108 阅读 · 0 评论 -
CF1466H 题解
CF 1466H话说某谷的翻译直接讲了第一步 …\dots…题目大意:总共有 nnn 个人,每个人有一个长度为 nnn 的排列,其中越靠前的数,其越喜欢。对于一个序列 AAA,一开始分配的方案是 iii 号人分配到 AiA_iAi。称一个序列 AAA 是合法的,当且仅当不存在两个或者多个人交换 AiA_iAi 使得有人得到更加喜欢的数。给定一个数组 AiA_iAi 求出有多少个排列,满足 AAA 是合法的。排列指的是每个人都喜欢序列。发现如果一个序列不合法肯定存在一个置换使得原创 2021-08-26 19:34:11 · 225 阅读 · 0 评论 -
P6031 CF1278F Cards 加强版 题解
P6031 CF1278F Cards 加强版题目大意:有 mmm 张牌,其中有一张是王牌。将这些牌均匀随机打乱 nnn 次,设有 xxx 次第一张为王牌,求 xkx^kxk 的期望值。答案对 998244353998244353998244353 取模。首先 xkx^kxk 不好处理。考虑将其消除掉,会想到使用斯特林数转下降幂之后使用组合数消除掉。我们考虑枚举几次是王牌。Ans=∑i=0n1mi(m−1m)n−i(ni)ikAns = \sum_{i = 0} ^ n \frac{1}{m原创 2021-08-26 10:07:53 · 98 阅读 · 0 评论 -
CF1392I 题解
CF1392I Kevin and Grid做这题的时候感觉网上的讲解很不清楚。但是写完了之后发现其实我也讲不出什么东西 …\dots…本质上这是一个联通块计数的问题。我们考虑这个数据范围肯定不是给 dp,dfsdp, dfsdp,dfs 的。考虑是一个网格图,有一定的性质。考虑一下欧拉定理。设联通块的个数是 kkk。那么 V−E+F=k+1V - E + F = k + 1V−E+F=k+1。我们就可以通过这些求出联通块的个数。但是不同的联通块会产生不同的贡献。我们在加上的联通块数量原创 2021-08-25 15:04:33 · 96 阅读 · 0 评论 -
Hdu 2815 题解
Hdu 2815 题解 Mod Tree详解见我的博客#include <bits/stdc++.h>using namespace std;//#define Fread//#define Getmod#ifdef Freadchar buf[1 << 21], *iS, *iT;#define gc() (iS == iT ? (iT = (iS = buf) + fread (buf, 1, 1 << 21, stdin), (iS == iT原创 2021-08-25 10:41:10 · 123 阅读 · 0 评论 -
Bsgs, Exbsgs
Bsgs\tt BsgsBsgs 例题如果您已经会 bsgsbsgsbsgs 不妨来看看文末的注意。求 ax≡b(modp)a^x \equiv b \pmod pax≡b(modp) 的一个最小正整数解。 p\tt pp 是素数。考虑进行分块,设 m=⌊p⌋m = \lfloor\sqrt p \rfloorm=⌊p⌋,那么让 xxx 进行一下拆分得到。x=i×m−jx = i\times m - jx=i×m−j。之后对于两部分分别进行计算,放到哈希表中查询即可。具体来说:我们先将原创 2021-08-25 10:39:13 · 105 阅读 · 0 评论 -
poj3146 题解
hdu3146题目大意:给定一个 n,pn, pn,p 求 (n0…n)\binom{n}{0 \dots n}(0…nn) 有多少数不能被 ppp 整除。我们考虑 LucasLucasLucas 定理。(nm)=(n/pm/p)×(nmod pmmod p)\binom{n}{m} = \binom{n / p}{m/ p} \times \binom{n \mod p}{m \mod p}(mn)=(m/pn/p)×(mmodpnmodp)。也就是将 nnn 分解成 ppp 进制。原创 2021-08-25 08:33:32 · 99 阅读 · 0 评论 -
ABC212G Power Pair 题解
ABC212G Power Pair给你一个质数 PPP。求点对 (x,y),x,y∈[0,P−1](x, y), x, y \in [0, P - 1](x,y),x,y∈[0,P−1] 的点对数量。其中 xk≡y(modP)x^k \equiv y \pmod Pxk≡y(modP)。可以想到如果能把指数拿下来会就变成一个乘积的形式,那么能将指数取下来的情况也就是底数相同。题目中给定的是一个素数 PPP。这也就是意味着其缩系的大小就是 P−1P - 1P−1。然后质数的原根也就是 P−1P - 1原创 2021-08-21 15:51:56 · 342 阅读 · 0 评论 -
P7418 [USACO21FEB] Counting Graphs P 题解
P7418 [USACO21FEB] Counting Graphs P题目大意:给定一张图,对于另一张合法的图,当且仅当两张图 (u,v)(u, v)(u,v) 之间所有的路径长度相同。统计所有合法的图的数量。注意路径不一定是简单路径。看到路径不一定是简单路径基本上就可以猜到做法了。因为是复杂路径一条边重复走是增加 222 的贡献,所以只要任意两点之间最短奇偶路径相同即可。我们可以找出这样的路径。我们任意找一个起点,之后可以得到 nnn 个数对。我们为了方便钦定 (x,y),x<y(x, y)原创 2021-08-19 21:00:43 · 231 阅读 · 0 评论 -
CF1305G 题解
CF1305G可以算说我自己做出来的 350035003500 题吧。虽然这是很多年前的题。这个东西我们可以尝试一下建图,也就是如果两个点是朋友关系我们可以使其连边。然后会发现有很多的联通块,那么我们不妨对于一个联通块来考虑。我们贪心得想肯定要让小的邀请大的点。然后邀请的情况肯定构成一个树,也就是邀请的边数是点数 −1-1−1。因为不能重复邀请。我们考虑这个树的情况需要使用,会想到最大生成树。然后要如何设置边权?可以发现对于一条边本质上两边都可以使用那么边权就是 au+ava_u + a原创 2021-08-17 06:57:43 · 188 阅读 · 0 评论 -
CF980F 题解
CF980F每一个点都指属于一个环,考虑对于每一个环进行计算答案。考虑基环树的情况,我们会计算出其余的点,之后对于环上的点单独进行 DpDpDp。这边也是同理,找到每一个点属于的环,钦定一下每一个环的根。因为计算距离需要使用换根 DpDpDp。我们考虑需要预处理写什么,也就是对于不同环之间的转移,然后对于同一个环内我们需要记录环根的答案。对于不同环之间的转移,对于每一个点设 f0if0_if0i 表示向下,从所属环不同的点到当前环的最小距离。然后对于环根还要特别记录一下 f1if1_if1i原创 2021-08-15 16:03:42 · 140 阅读 · 0 评论 -
CF865E 题解
CF865E首先考虑差的性质,也就是 S=∑iai−biS = \sum_{i} a_i - b_iS=∑iai−bi 我们会发现如果没有进位这个值就是 000,不然如果有进位那么每一位会多出来 151515 的贡献,可以发现合法的情况是 S≡0(mod15)S \equiv 0 \pmod {15}S≡0(mod15)。不然就是不合法的。然后我们需要钦定有多少位是进位的,复杂度是 (136)\binom{13}{6}(613) 可以接受的样子。又因为 bbb 是 aaa 的置换,本质上原创 2021-08-14 09:38:23 · 110 阅读 · 0 评论 -
CF1383C 题解
CF1383C观察一下题目的性质,他说了同一种颜色可以有若干个一起变色,那么我们考虑将同一种颜色看成相同的东西。考虑对于其建图,也就是如果 AiA_iAi 变成 BiB_iBi 就建立 Ai→BiA_i \to B_iAi→Bi 的边。然后本质上就是叫我们重新建立一张图满足 AiA_iAi 和 BiB_iBi 联通,边数最少的图。本质上每一次变换都是需要一次操作。但是不仅是如此,如果说 u→vu \to vu→v 的路径是存在的,必须满足其路径上的边的变化时间是递增的。那么就是让原创 2021-08-08 21:51:02 · 130 阅读 · 0 评论 -
CF848D 题解
CF848D对于一条 S→TS \to TS→T 的路径我们一开始会考虑对于点的标号进行计算,但是事实上我们并不知道哪些点会在左边或者右边。然后对于最小割我们转化成最大流进行计算,对于某一个中间点使得最大流是 mmm,你们左右两边的最大流的 min\minmin 就是 mmm。我们发现本质上就是求经过 nnn 次操作,使得最大流是 mmm 的图的个数。然后对于左右两边其实分成了一个子问题。那么设 f(n,m)f(n, m)f(n,m) 表示经过 nnn 次操作,最大流是 mmm 的图的个数。然原创 2021-08-08 10:51:44 · 168 阅读 · 0 评论 -
CF830E题解
CF830E题目已经很简洁了,我们考虑对于样例进行分析。首先不用脑子就能想到的就是环的情况,有环直接全部填 111 就好了。我指的是环所在的连通块。之后研究样例发现对于树的情况也是有解的,然后我们会想到菊花的情况,对于菊花,也就是 ∃i,degi≥4\exist i, deg_i \ge 4∃i,degi≥4 就是有解的,中间填 222,周围填 111。我们发现 ∀i,degi≤2\forall i, deg_i \le 2∀i,degi≤2 是无解的。然后我们发现只有一个 deg原创 2021-08-07 22:55:17 · 109 阅读 · 0 评论 -
「CEOI2019」游乐园 题解
「CEOI2019」游乐园 题解首先看到这个是一个数图的题目。这里有一个转化,考虑翻转边本质上就是对这个图进行一个定向,容易想到翻转的边和自己定向的 DAGDAGDAG 是一一对应的。所以我们考虑给定一个无向图,对于每一条边进行定向,求定向后是 DAGDAGDAG 的图的贡献。然后我们考虑对于一个 DAGDAGDAG 我们把所有的边都翻转了肯定也还是一个 DAGDAGDAG。所以对于每一个合法的方案都有一个可以和其进行配对的图,其贡献之和是 mmm。所以每一张图的贡献可以当做 m2\dfrac{m原创 2021-08-04 12:20:41 · 262 阅读 · 0 评论