数学部分做题记录

I. [ARC152C] Pivot

神仙题。

II. CF1792E Divisors and Table

III. CF1763D Valid Bitonic Permutations

IV. P6736 「Wdsr-2」白泽教育

注意到 n{1,2,3}

  • n=1

a1x=axb(modp),这是一个平凡的 BSGS 问题。

  • n=2

我们有

a2x=aaa...ax

根据 CF906D 的经典结论,当 xr=Θ(logp) 时幂塔在模 p 意义下结果不变,所以直接做就可以了。

  • n=3

我们有

a3x=aaa...aaaa...aa}b

n=2 的情况,迭代次数最多只会是 4,直接做就好了。

V. P9405 [POI 2020/2021 R3] 星间旅行

神仙题。

VI. P5598 【XR-4】混乱度

神仙题。

VII. P3705 [SDOI2017] 新生舞会

显然的 0/1 分数优化,二分答案后直接跑费用流即可。我也不知道为什么能过。

VIII. P5516 [MtOI2019] 小铃的烦恼

神仙题。

IX. P3830 [SHOI2012] 随机树

神仙题。

X. CF1830C Hyperregular Bracket Strings

很厉害的题。

XI. UVA10652 Board Wrapping

凸包板子题。只需要知道向量旋转的结论就可以了。

XII. CF1967B2 Reverse Card (Hard Version)

尺子姐姐!/se

不妨套路地设 gcd(a,b)=ga=gxb=gy

引理

x2<n,y2<m

证明

题目条件化为 x+ygy。由于 gcd(x+y,y)=gcd(x,y)=1,所以 x+yg

注意到 x+y<g,而 g=axnx,即得 x2<ny 的讨论是对称的。

注意到引理,我们直接枚举互素数对 (x,y),由于 a=gxnb=gym,所以 gmin(nx,my);又 x+yg,所以除以 x+y 后下取整即可。

时间复杂度 Θ(n+m)

XIII. P6835 [Cnoi2020] 线形生物

神题,可以加深对数学期望的了解。

XIV. CF1967C Fenwick Tree

尺子姐姐!!/se

注意到树高最多为 Θ(logn),不难想到维护每一个 i 对其祖先的贡献。

发现做 k 次 Fenwick Sum,对应链上的深度差为 d 的节点中,儿子对祖先的贡献为 (d+k1k1)。直接减去即可。

时间复杂度 Θ(nlogn)

XV. CF113D Museum

f(i,j) 为 A 在 i,B 在 j 的期望次数。由于终态 (i,i) 只会出现 {0,1} 次,所以这里期望等于概率。

我们有显然的转移方程:

f(y,w)(x,y)E(z,w)E(1px)(1pz)degxdegzf(x,z)+(z,w)Epy(1pz)degzf(y,z)+(x,y)E(1px)pwdegxf(x,w)+pypwf(y,w)

额外地,如果 (y,w) 是起点,那么 f(y,w) 的期望值还需要额外加 1,理由显然。

时间复杂度 Θ(n6)。代入 n=22 得到 1.13×108,精细实现应该是可以过的。

XVI. P3599 Koishi Loves Construction

见非传统题做题记录 Ett

XVII. [ABC322G] Two Kinds of Base

神仙题。

XVIII. CF632E Thief in a Shop

XIX. CF1548C The Three Little Pigs

XX. P4173 残缺的字符串

XXI. [ABC307Ex] Marquee

XXII. P4448 [AHOI2018] 球球的排列

XXIII. [ABC291G] OR Sum

aorb=a+babwhere a,b{0,1}

XXIV. P3412 仓鼠找sugar II

XXV. P4609 [FJOI2016] 建筑师

XXVI. [ABC321G] Electric Circuit

XXVII. [ARC105F] Lights Out on Connected Graph

XXVIII. P6478 [NOI Online #2 提高组] 游戏

XXIX. P2953 [USACO09OPEN] Cow Digit Game S

见博弈论做题记录 I

XXX. P10501 Cutting Game

见博弈论做题记录 II

XXXI. [ARC168B] Arbitrary Nim

见博弈论做题记录 III

XXXII. P4841 [集训队作业2013] 城市规划

XXXIII. [ABC327G] Many Good Tuple Problems

首先题意转化为求 nm 边的有标号二分图(可以有重边)数量。

套路地设 nm简单二分图(染色方式不同算多种)的数量为 f(n,m)。则枚举左部点数量,我们得到

f(n,m)=i=0n(ni)(mi(ni))

套路地设 nm 边的连通简单二分图(染色方式不同算多种,但显然只有两种染色方式)的数量为 g(n,m)。则枚举 1 号点所在连通块,我们得到

g(n,m)=f(n,m)i=1nj=0m(n1i1)g(i,j)f(ni,mj)

边界为 g(1,0)=1

不套路地nm 边的简单二分图的数量(染色方式不同算一种)的数量为 h(n,m),套路地枚举 1 所在连通块,我们得到

h(n,m)=12i=1nj=0m(n1i1)g(i,j)h(ni,mj)

为什么要除以 2:每种连通二分图在 g 中被计算了两次。

枚举去重后的边数 M,则贡献为 h(n,M) 乘以 m 条边中不同元素个数为 M 的方案数。

转化为将 m 个有标号球放进 M 个有标号盒子中,且没有空盒子的方案数。

受到十二重计数法的启发,套路地枚举空盒子数量 i,容斥(二项式反演)即可;所以就是

i=0M(1)i(Mi)(Mi)m

即为答案。

XXXIV. P10506 魔法珠

见博弈论做题记录 IV

XXXV. P6487 [COCI2010-2011#4] HRPA

见博弈论做题记录 V

XXXVI. P2148 [SDOI2009] E&D

见博弈论做题记录 VI

XXXVII. [ABC212H] Nim Counting

XXXVIII. CF914G Sum the Fibonacci

给定长度为 n 的数组 s。定义五元组 (a,b,c,d,e)好的当且仅当:

  1. 1a,b,c,d,en
  2. (saorsb)andscand(sdxorse)=2i,iZ
  3. saandsb=0

对于所有好的五元组 (a,b,c,d,e),求出 f(saorsb)×f(sc)×f(sdxorse) 的和。对 (109+7) 取模。

其中 f 为 Fibonacci 数列,满足 f0=0,f1=1,fi=fi1+fi2and,or,xor 分别代表按位与,按位或,按位异或运算。

1n1060si<217

XXXIX. [ABC137F] Polynomial Construction

XL. P5387 [Cnoi2019] 人形演舞

XLI. P7575 「PMOI-3」公约数

题目中给出的形式不方便反演。不妨先考虑一个计数 dp。

f(i,j) 为考虑了前 i 个数,其中第 i 个数是 j 的合法方案数。

初值:f(1,j)=[x1j]

转移:

f(i,k)=xi1j[gcd(j,k)=xi1]f(i1,j)

直接开始莫反。

f(i,k)=xi1j[gcd(j,k)=xi1]f(i1,j)=j=1mxi1[gcd(j,kxi1)=1]f(i1,jxi1)=j=1mxi1f(i1,jxi1)pj,pkxi1μ(p)=pkxi1μ(p)pxi1kf(i1,k)

注意到这是一个 Dirichlet 前/后缀和的形式,我们在 dp 时维护它即可。时间复杂度 Θ(mlogmloglogm)

XLII. P8292 [省选联考 2022] 卡牌

XLIII. [ABC293F] Zero or One

XLIV. [AGC029D] Grid game

XLV. CF449D Jzzhu and Numbers

XLVI. [ABC244Ex] Linear Maximization

XLVII. P3309 [SDOI2014] 向量集

XLVIII. [ABC288G] 3^N Minesweeper

XLIX. P7930 [COCI2021-2022#1] Set

L. P4221 [WC2018] 州区划分

LI. P6570 [NOI Online #3 提高组] 优秀子序列

LII. CF1096G Lucky Tickets

LIII. P5330 [SNOI2019] 数论

LIV. P10075 [GDKOI2024 普及组] 切割

LV. [ARC122E] Increasing LCMs

LVI. [ARC179C] Beware of Overflow

LVII. P6089 [JSOI2015] 非诚勿扰

LVIII. P10499 开关问题

LIX. P1737 [NOI2016] 旷野大计算

LX. [AGC027D] Modulo Matrix

LXI. P4284 [SHOI2014] 概率充电器

LXII. [ABC341G] Highest Ratio

LXIII. P4827 [国家集训队] Crash 的文明世界

注意到

mn=i=0n{ni}mi=i=0n{ni}(mi)i!

不妨设

f(u;i)=vsubtree(u)(dist(u,v)i)

状态转移是平凡的:

f(u;i)=[i=0]+vson(u)wsubtree(v)(dist(v,w)+1i)=[i=0]+vson(u)wsubtree(v)[(dist(v,w)i)+(dist(v,w)i1)]=[i=0]+vson(u)(f(v;i)+f(v;i1))

这样一来,对于根,答案就是

i=0k{ki}i!f(root;i)

考虑换根。设 g(u;i)u 为根时候的 f(u;i)

g(v;i)=f(v;i)+wsubtree(v)(dist(u,w)+1i)=f(v;i)+w(dist(u,w)+1i)wsubtree(v)(dist(u,w)+1i)=f(v;i)+w(dist(u,w)+1i)wsubtree(v)(dist(v,w)+2i)=f(v;i)+w(dist(u,w)+1i)wsubtree(v)[(dist(v,w)+1i)+(dist(v,w)+1i1)]=f(v;i)+w(dist(u,w)+1i)wsubtree(v)[(dist(v,w)i)+(dist(v,w)i1)+(dist(v,w)i1)+(dist(v,w)i2)]=f(v;i)+w(dist(u,w)+1i)wsubtree(v)[(dist(v,w)i)+2(dist(v,w)i1)+(dist(v,w)i2)]=g(u;i)+g(u;i1)2f(v;i1)f(v;i2)

时间复杂度 Θ(nk)

LXIX. [ABC213H] Stroll

套路地设 f(u,t) 为走到 u 时已经走过长度为 t 的路程的方案数。

[zi]Fu(z)=f(u,i)

我们有显然的转移:

Fv(z)=uPu,v(z)Fu(z)

分治 NTT 即可,时间复杂度 Θ(n2TlogT)

LXX. P5437 【XR-2】约定

n 个点的无向图有 nn2 棵生成树,每棵生成树有 (n1) 条边,所以每条边的出现次数为 (n1)nn2n(n1)2=2nn3

所以答案就是

2nn3nn2i=1nj=i+1n(i+j)k=2ni=1nj=i+1n(i+j)k

考虑怎么快速算右边。注意到,记 f(n)=i=1nj=1n(i+j)k,则原式的两倍等于 f(n)i=1n(i+i)k。于是我们只需要考虑 f(n)

注意到,f(n) 的差分是 (k+1) 次函数,从而 f(n)(k+2) 次函数,可以 Θ(k) 插出。对于右边也是同理的。

所以我们在 Θ(k) 内解决了本题。

LXXI. P5442 【XR-2】约定(加强版)

LXXII. P5689 [CSP-S2019 江西] 多叉堆

LXXIII. CF1842H Tenzing and Random Real Numbers

LXXIV. [ABL-F] Heights and Pairs

不会简单容斥/kk

Pn 为用 2n 个数构成完美匹配的方案数。我们得到,P(n)=(2n)!n!2n

fi 为至少有 i 个相同对(其他任意)的方案数,那么答案就是 i=0n(1)ifi

那么,设 fi 为选出 i 个相同对的方案数,则有 fi=fiP(ni)

考虑如何求出 fi。我们显然地有

fx=ai=xi=1n(cnti2ai)P(ai)

这显然是一个多项式卷积的形式,套路地设 Fi(z)=i=0+(cnti2i)P(i)z,将 nFi 卷起来就可以了。

每次选取最小的两个多项式卷起来,可以证明时间复杂度是 Θ(nlog2n)

LXXV. CF1585F Non-equal Neighbours

神仙容斥。

正着做反着做都不好做,只好容斥了。

套路地,设 f(i) 为至少有 i 个 bad position 的方案数。定义 f(i,j) 为前 i 个元素分为 j 段的方案数。显然,f(i)=f(n,ni)

考虑怎么算 f(n,i)。显然一段内的方案数就是其最小值(记为 mn(l,r))。那么,显然有

f(i,j)=k=0i1f(k,j1)mn(k+1,i)

注意到,容斥中,乘上 1/1 只和 f(i)i 的奇偶有关,所以可以直接缩减状态:f(i,0/1)(其中 j0/1(mod2)

考虑单调栈,记 pos 为第一个小于 i 的位置。那么,

f(i,j)=k=0pos1f(k,j1)mn(k+1,i)+k=posi1f(k,j1)i

f(i,j)=k=0pos1f(k,j1)mn(k+1,pos)+k=posi1f(k,j1)i

f(i,j)=f(pos,j)+k=posi1f(k,j1)i

不妨记 g(i,j)=k=1if(k,j)。那么,

f(i,j)=f(pos,j)+i(g(i1,j1)g(pos1,j1))

时间复杂度 Θ(n)

LXXVI. CF1556F Sports Betting

LXXVII. CF1848F Vika and Wiki [duel]

LXXVIII. Subsequences Galore [duel]

LXXIX. CF296B Yaroslav and Two Strings [duel]

LXXX. CF1608D Dominoes [duel]

LXXXI. P10580 [蓝桥杯 2024 国 A] gcd 与 lcm

建议评黄。

每个素因子是独立的,可以分开考虑。以下均基于素因子 p 讨论

gcd 中,p 的指数为 alcm 中,p 的指数为 b

题目保证了有解,所以 ab

a<b 时,序列中,至少一个位置指数为 a,至少一个位置指数为 b

正着做不好做,考虑容斥。拿全部方案,减去钦定没有 a 或没有 b 的方案,加上钦定两个都没有的方案即可。

a=b 是平凡的。

时间复杂度为 Θ(QV),其中 V 花费在分解素因子上。

LXXXII. CF60D Savior

考虑 i 能向 j 传 Laugh 的条件。将能够传播 Laugh 的草坪之间连一条无向边,答案就是连通块数量。

考虑勾股数组的构造。

  • a=m2n2
  • b=2mn
  • c=m2+n2

其中 m>n,且 m,n 一奇一偶。

枚举 m,n 即可,时间复杂度 Θ(V)

LXXXIII. CF1119H Triple

题解。

LXXXIV. P1520 因式分解

题解。

LXXXV. P5308 [COCI2018-2019#4] Akvizna

对于二维的情况,DP 方程是显然的:

f(i,j+1)=max0k<i{f(k,j)+iknk}

考虑到 f 的凸性,考虑 wqs 二分。那么,就是

f(i)=max0j<i{f(j)+ijnjmid}

考虑决策单调性优化。

首先讨论:我们在 cntk 时更新 rmid。这意味着,我们需要让能够分成的段数尽量多。

考虑 j1<j2 这两个决策点,那么就有 f(j2)+ij2nj2f(j1)+ij1nj1

进行 Dirty work。记 F(j)=f(j)jnj

化简得到

F(j2)+inj2F(j1)+inj1

于是

F(j2)F(j1)(inj2inj1)

于是

F(j2)F(j1)1nj21nj1i

  • Y(i)=F(i)=f(j)jnj
  • X(i)=1ni

这就是【模板】斜率优化 DP。

LXXXVI. Counting Graphs

三 合 一

在本题中,多项式乘法是不必要的,只需要实现 Θ(n2) 的算法即可。

I. 有标号无向连通图计数

算法 1

f(n)n 个节点的无向图个数,g(n)n 个节点的无向连通图个数。

显然 f(n)=2n(n1)2

拿所有方案数减去不合法的方案数。枚举与 1 号节点与多少点在一个联通块内。即有

g(n)=f(n)i=1n(n1i1)f(ni)

注意到这是一个卷积的形式,即可在 Θ(nlogn) 内解决本题,即 城市规划

算法 2

f(n)n 个节点的无向图个数,g(n)n 个节点的无向连通图个数。F(z),G(z) 为对应的 EGF

我们有:

F(z)=expG(z)

所以

G(z)=lnF(z)

II. 有标号无向 Euler 图计数

f(n)n 个节点的无向图(满足每个点度数都是偶数)个数,g(n)n 个节点的 Euler 图个数。

显然 f(n)=2(n12)

理由:第 n 个点只会与前 (n1) 个点组成的任意图中度数为奇数的点连边。(想一想,为什么这样第 n 个点的度数就一定是偶数?)

接下来的推导就同 I. 了。

III. 有标号二分图计数

算法 1

算法 2

考虑 n 个节点的图,对每个点进行黑白染色,满足同色点之间无边的方案数为 f(n)。显然为

f(n)=i=0n(ni)2i(ni)

考虑 n 个节点的连通二分图的方案数 g(n),设出 EGF,有

F(z)=exp2G(z)

(为什么要乘以 2:注意到是黑白染色,一个二分图对应两种染色方案。)

那么,G(z)=12lnF(z)

于是,设 n 个节点的二分图方案数 h(n),我们就有

H(z)=expG(z)

LXXXVII. P4617 [COCI2017-2018#5] Planinarenje

二分图博弈的模型。

LXXXVIII. [ABC276G] Count Sequences

解法 1

套路地考虑 GF。那么有

f(i,j)={1,i=1kj,kjf(i1,k),i>1

对应到 GF 上,就是

Fi(z)={11z,i=1z+z21z3Fi1(z),i>1

所以,Fn(z)=zn1(1z3)n1(1z)(1+z)n1

不妨再卷一个 11z(前缀和),就化为求 [zm]zn1(1z3)n1(1z)2(1+z)n1,也就是求 [zmn+1](1+z)n1(1z)2(1z3)n1

换个角度思考,(1+z)n1(1z)2 就是 (1+z)n1 的二阶前缀和,可以线性求出。

而,

(1z3)1n=i=0+(z3)i(1ni)=i=0+(n+i2i)z3i

也是好求的。综上,我们严格线性地完成了本题。

LXXXIX. [ABC295E] Kth Number

注意到,E[X]=iPr(Xi)。所以只需要算出 kthi 的方案数。

想要让 kthi,也就是 i 的数需要有至少 nk+1 个。

错解

那么,设需要补至少 xi 的数,方案数就是 (mi+1)xmcnt0x。然后求个和就行了。

Bug

该式子的意义为“钦定前 x0 m,剩下的随便选”,但是显然这是不对的。

那么,只需要枚举 jx,然后从 x 个里面选出 ji,剩下的全部 <i 即可。时间复杂度 Θ(nm)

XC.

求出

fn=k=0n(2nkk)(1)k22n2k

的封闭形式。

打表发现,fn=2n+1

XCI. CF1109D Sasha and Interesting Fact from Graph Theory

算法 1

考虑枚举 (a,b) 路径上(不含两端)有多少个点,我们有

answer=i=0n2(m1i)mn2ii!(n2i)F(i+2)

其中 F(i) 表示有多少种方式构造一棵 n 个点的树,使得 i 个关键点不在同一棵树内。

由广义 Cayley 定理得,F(i)=ini1

所以答案为

answer=i=0n2(m1i)mn2ii!(n2i)F(i+2)=i=0n2(m1i)mn2ii!(n2i)(i+2)nni3

特判 i=n2 的情况即可,时间复杂度 Θ(nlogn)

算法 2

考虑枚举 (a,b) 路径上(不含两端)有多少个点,我们有

answer=i=0n2(m1i)mn2i(n2)![zn2](T^(z)z)2T^(z)i=(n2)!i=0n2(m1i)mn2i[zn]T^(z)i+2

XCII. P3166 [CQOI2014] 数三角形

只需要拿选出三个不同点的方案数减去三点共线的方案数。

平凡的,略去斜率不存在或者为 0 的情况。不妨只考虑斜率 >0 的情况,最终再乘以 2

P1447 [NOI2010] 能量采集 的套路可知,设两点横纵坐标差值为 Δx,Δy,它们之间有 gcd(Δx,Δy)1 个点。所以我们就要算

i=1n1j=1m1(ni)(mj)(gcd(i,j)1)

由于本题中 n,m1000,所以做完了。时间复杂度 Θ(nm)

XCIII. P10636 BZOJ3518 点组计数

其实就是 XCII 的加强版。

平凡的,略去斜率不存在或者为 0 的情况。不妨只考虑斜率 >0 的情况,最终再乘以 2

P1447 [NOI2010] 能量采集 的套路可知,设两点横纵坐标差值为 Δx,Δy,它们之间有 gcd(Δx,Δy)1 个点。所以我们就要算

i=1nj=1m(ni)(mj)(gcd(i,j)1)

在 P3166 中我们可以暴力计算,但是本题中我们需要更优的做法。

首先将和式拆开,变成

=i=1nj=1m(ni)(mj)gcd(i,j)i=1nj=1m(ni)(mj)

对于右边,显然等于

i=0n1j=1m1ij=n(n1)2m(m1)2

对于左边,显然等于

nmi=1nj=1mgcd(i,j)ni=1nj=1migcd(i,j)mi=1nj=1mjgcd(i,j)+i=1nj=1mijgcd(i,j)

然后你发现这三个都是典题。不过我们不妨推一下:(默认 nm

i=1nj=1mgcd(i,j)=i=1nj=1mdi,djφ(d)=d=1nφ(d)i=1nj=1m[di][dj]=d=1nφ(d)i=1ndj=1md1=d=1nφ(d)ndmd

我们记 s(n)=i=1ni

i=1nj=1migcd(i,j)=i=1nj=1midi,djφ(d)=d=1nφ(d)i=1nj=1mi[di][dj]=d=1nφ(d)i=1ndj=1mdid=d=1ndφ(d)s(nd)md

i=1nj=1mijgcd(i,j)=i=1nj=1mijdi,djφ(d)=d=1nφ(d)i=1nj=1mij[di][dj]=d=1nφ(d)i=1ndj=1mdidjd=d=1nd2φ(d)s(nd)s(md)

然后就做完了,利用线性筛,时间复杂度为 Θ(n)。不理解为什么才开到 5×104

Bonus:考虑 n,m1010 的时候如何做。

本文作者:Starrykiller

本文链接:https://www.cnblogs.com/Starrykiller/p/18214360/math-problems

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Starrykiller  阅读(68)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.