2025Dec.居家集训游记

在家集训也能叫游记吗?

总所周知每一个OIer都爱写这东西(欸我CSP-S游记还没写),所以在家集训也要写。

DAY1 11.8

有点忘了,游记是9号写的。

好像不安了一天,因为我太菜了,也有点想学校里的朋友。

学习了 kruskal 重构树,它满足二叉堆的性质,可以做让最小边权最大(降序排边),让最大边权最小(升序排边)的问题

例题:洛谷P4768 [NOI2018] 归程

重构树+最短路,在重构树上倍增找到海拔最低的不会被淹的虚点,其子树就是能坐车到的所有点,然后输出子树里的最短路。

这题的“其子树就是能坐车到的所有点”利用了二叉堆性质,即根节点和子节点一定成偏序关系,很有价值。

多组询问+多测的图论题最出生了,硬调2.5h。

DAY 11.9

回学校取了趟书,同学们真好呜呜呜。

今天是数论。

P5253 [JSOI2013] 丢番图

\[\frac{1}{x}+\frac{1}{y}=\frac{1}{n}\\ xy-xn-yn=0\\ xy-xn-yn+n^2=n^2<=>(x-n)(y-n)=n^2(这一步鬼能想到,\%一下GH大佬)\\ \]

所以是求\(n^2\)的因数对个数。

直接算\(O(n)\)超时,对\(n\)进行质因数分解,\(n=\sum_{i=1}^{k}p_i^{e_i}\),那么\(n^2=\sum_{i=1}^{k}p_i^{2e_i}\),每个质因数都有选\(0-2e_i\)\(2e_i+1\)种选择,可以看出来这样是不会重复的,因此因数个数为\(\prod_{i=1}^{k}(2e_i+1)\),结合超过\(\sqrt{n}\)的质因数最多只有一个的性质,时间复杂度\(O(\sqrt{n})\),因数肯定是首位配对,又因为\(n^2\)一定为完全平方数,中间会有个多出来的,因此答案为\(\frac{\prod_{i=1}^{k}(2e_i+1)}{2}+1\)

P1445 [Violet] 樱花

和上面的题一样,问题在于求每个质数在\(n!\)的质因子里出现了多少次。

GH大神使用了下面的公式(勒让德定理),其中\(e_p\)为质数\(p\)\(n!\)质因子里出现的个数。

\[e_p=\sum_{i=1}^{\infin}\lfloor\frac{n}{p^i}\rfloor \]

然而其实对\(1-n\)暴力质因数分解可以直接卡过去

然后我忘了区间筛怎么写了,欧拉函数递推公式看一遍忘一遍。

P4626 一道水题 II

注意到\(lcm(1,2,3,\dots,n)\)等价于\(\prod_{i=1}^{k}p_i^{e_i}\),其中\(e_i=\lfloor\log_{p_i}n\rfloor\)

居然被我切了,那确实水

这个题的模数是\(10^8+7\),是的这也是个质数,被坑了,出题人想干啥

P1306 斐波那契公约数

首先,神人结论,\(F[n]\)为斐波那契数列第\(n\)项,假定\(n<m\)​:

\[gcd(F[n],F[m])=F[gcd(n,m)] \]

GH大神:

???孩子们是结论大赛我们没救了

\(F[n]=a,F[n+1]=b,F[n+2]=a+b,F[n+3]=a+2b,F[n+4]=2a+3b\dots\)

欸,这可以看出来\(a\)\(b\)的系数其实也是个斐波那契数列。(注意力惊人)

\(F[m]=F[m-n-1]a+F[m-n]b\),即\(F[m]=F[m-n-1]·F[n]+F[m-n]·F[n+1]\)

带入原式

\[gcd(F[n],F[m-n-1]·F[n]+F[m-n]·F[n+1])=gcd(F[n],F[m-n]·F[n+1]) \]

引理(???):

\[gcd(F[n],F[n+1])=1 \]

证明:

\[\gcd(F[n],F[n+1])=\gcd(F[n],F[n]+F[n-1])=\gcd(F[n],F[n-1])\\ 设t=n-1,\gcd(F[t],F[t+1])=\gcd(F[t],F[t-1])\\ \dots\\ 所以最后就变成\gcd(F[1],F[2])=\gcd(1,1)=1了 \]

那么原式就又可以简化为\(\gcd(F[n],F[m])=\gcd(F[n],F[m-n])\)了。

再令\(m'=m-n\),就可以继续递归,得到\(\gcd(F[n],F[m])=\gcd(F[n],F[m\mod n])\)

由于\(m\mod n<n\),可以再令\(n'=m\mod n,m'=n\),得到

\[\gcd(F[n],F[m])=\gcd(F[n],F[m\mod n])=\gcd(F[n'],F[m'])=\gcd(F[n'],F[m'\mod n'])\dots$​ \]

再次注意到\(n,m\)的交替实际上是在求\(n'=\gcd(n,m)\),最后剩下的就是\(\gcd(F[n'],0)=F[\gcd(n,m)]\),证毕。

天哪每一步都是惊人的注意力吗

浅色调dalao也太强了。

欸不是模数\(10^8\)我怎么又被坑了。

值得一提的是,同机房LZC大佬也遇到了个模数为\(998442353\)的题。

已完成今日模数不只有\(998244353\)\(10^9+7\)大学习

DAY3 11.10

上午继续做数学。

P5175 数列

矩阵递推挺好玩的,可以发现平方和可以从平方递推,\(a_i^2=a_{i-1}^2+2xya_{i-1}a_{i-2}+a_{i-2}^2\),拆\(2xya_{i-1}a_{i-2}=a_{i-2}(xa_{i-2}+ya_{i-3})=xa_{i-2}^2+ya_{i-2}a_{i-3}\),这些都是上一个矩阵有的,满足递推关系。

本来以为是硬拆找规律,想起了24年暑假集训模拟赛场上耗费2h暴力拆式子推出来的T4。

P5656 【模板】二元一次不定方程 (exgcd)

取最小正整数,所以通解取模的时候如果为0返回的应该是模数。

我以为我公式错了耗了半天,服了。

P2613 【模板】有理数取余

\[\frac{a}{b}\equiv\frac{a\mod p}{b\mod p}\pmod{p} \]

易证

P1593 因子和

一步转化,后面的就很简单了

\[ans=\prod_{i=1}^{k}\sum_{j=0}^{e_i}p_i^j \]

欸不是我怎么想不到这个的啊

下午模拟赛

70+50+0+40=160

T2输出0拿了四十???出题人数据用脚做的吗??

T3倍增的部分分没写完

T4开long long可以再拿10pts

GH大蛇330pts%%%

T1

显然选这个硬币的次数要小于\(\frac{a_{i+1}}{a_i}\),把原题看成进制,相当于至少多少次询问才能使所有位至少在两次询问中不同,

若进制不一样,取最大的ans。

显然对于n位k进制数,它最多能构造\(n^k-1\)个有效数字(0没意义),那么答案即为

\[\max_{i=1}^{n-1}\{\log_{b_i}(i+1)\} \]

其中\(b_i\)\(\frac{a_i+1}{a_i}\),时间复杂度\(O(n\log n)\),瓶颈在对\(b_i\)排序或\(\log\)函数。

T2

通用套路:把坐标系转\(45°\),新坐标\((u,v)=(x+y,x-y)\),原坐标移动变为\((u\pm 1,v\mp 1)\),这样无论向哪个方向走两坐标都会有变化,移动范围\((u\pm m,v\mp m)\)\(u,v\)独立,降维,下面就可以只考虑一维的方案数再乘起来。

首先所有狼的任意一维坐标差必须是偶数,即奇偶性相同,要不然不可能汇于一点。

\(u\)为例,设终点\(u\)坐标为\(k\),范围\(u-m\leq k\leq u+m\),可以直接枚举,考虑路径组合公式。

对于狼\(i\),位移\(\Delta x=k-u_i\),多出来的\(m-(k-u_i)\)是正负方向抵消的,所以正方向移动了\(k-u_i+\frac{m-(k-u_i)}{2}=\frac{m+k-u_i}{2}\)步,负方向移动了\(\frac{m-k+u_i}{2}\)步,把正方向看做黑球,负方向看做白球,方案数为\(\binom{m}{\frac{m-k+u_i}{2}}\)。预处理阶乘和阶乘逆元可以\(O(1)\)计算,所以答案为:

\[ans=\big(\sum_{k}\prod_i^n\binom{m}{\frac{m-k+u_i}{2}}\big)·\big(\sum_{k}\prod_i^n\binom{m}{\frac{m-k+v_i}{2}}\big) \]

其中\(u_{min}-m\leq k\leq u_{max}+m\),k的枚举步长为2(小数取组合数没意义),时间复杂度\(O(n(V+m))\)\(V=u_{max}-u_{min}\),可以通过本题。

不过GH大佬对此进行了优化(因为他以为这个复杂度过不掉

没听懂怎么优化的,反正\(O(n(V+m))->O(nm)\),然而区别不大(

T3

https://www.luogu.com.cn/problem/P11340

到底是谁在会这种东西??????

把每个人的最高和最低排名当成线段堆在数轴上,如果某个位置不被任何线段跨过,将数轴划分段,每一段都是个SCC(神秘结论),所以想去第一的充要条件是在第一个块内。

线段树维护每个线段(左闭右开),进行线段树二分,维护区间最小值以找到第一个0即可(如果不左闭右开无法区分线段,找不到0)。

T4

不补了,什么玩意,超长数论推式子。

Day4 11.11

其实上午还在补昨天的题

图论

P1407 [国家集训队] 稳定婚姻

我以为是边双,原来要分别建单向边吗

匈牙利板子是不是可以过

P5058 [ZJOI2004] 嗅探器

我写了个假做法,被LZC一眼hack掉了,结果居然AC了???

https://www.luogu.com.cn/discuss/1195935

正解是tarjan小技巧,感觉挺有价值

P2865 [USACO06NOV] Roadblocks G

已完成今日次短路模板大学习

今天怎么啥也没干,明天学学dinic板子

posted @ 2025-11-10 00:07  司马只因锥  阅读(22)  评论(0)    收藏  举报