这几天代码能力简直掉成PJ水平了……各种数组开小+读错题+没考虑完
第一个是模拟赛。本来是原题大赛,可以AK的,但是T3没注意到是多测。这个暑假因为不看输出格式已经G了两道题了,事不过三。
第二个是CF Div2。本来是水题大赛,可以AK的,结果因为F读错题被卡了n年。然后导致E没时间调:Wa on 8 以为是做法假了,结果是数组开小。
顺便记录一下我读成什么题,以及想到的做法:F 是出现了奇数次的球的个数。
然后还是先用第二类斯特林数,转成 ∑C(F,i) 的形式,考虑钦定 i 个球,都出现奇数次的方案数。
用EGF表示一个这样的球,就是 (ex−e−x)/2
普通的球就是 ex ,所以答案就是 [xn]((ex−e−x)/2)iex(m−i)
直接展开 ((ex−e−x)/2)i 这一坨,然后对于每一项算系数就好了。
O(k2) 的,过不去。而且注意到还要每次算快速幂,最后还得算 n! 的阶乘,实际上是 O(k2logn+n) 的。更离谱了。
于是就发现读错题了。读对题后发现就是个蠢题。
第三个是多校。打的还行,至少我们队把大众 7 题给打满了。
然后来做题记录吧。
[ARC068D] Solitaire
-
对于能否拆成两个递减序列这种问题,可以用最小链覆盖=最大反链,转化成有没有长度为3的递增子序列。
-
列出来一些dp式子后可以放到坐标系上思考,这是很常见的。
我们有时想估计一个东西 x 能取到的最小值,我们可以求它的期望来得到。
loj3405 Gem Island 2
原版的结论:每个终止状态出现概率相同。
然后考虑这个前 r 大的数的和,我们不妨枚举 i 以及 P=∑[i≤aj] ,然后贡献就是 min(P,r)
这个其实就是排了序,画个柱状图,再侧个方向看的思想。
枚举完了 i 和 P ,用生成函数来处理限制,答案就是
[xd]1(1−x)n∑i=1∑P≤n(nP)(xi1−x)P(1−xi1−x)n−Pmin(r,P)
发现枚举 i 是比较鸡肋的,令 F(x)=∑P≤n(nP)xP(1−x)n−Pmin(r,P)
然后原来的式子可变成 [xd]1(1−x)n∑i=1F(xi)
如果算出来 F 那直接搞个狄利克雷前缀和就做完了。
算 F ?首先这个 min 就很丑啊。我们把它拆了。
F(x)=∑P≤r(nP)xP(1−x)n−P(P−r)+∑P≤n(nP)xP(1−x)n−Pr=r+∑P≤r(nP)xP(1−x)n−PP−r∑P≤r(nP)xP(1−x)n−P
啊把 P 换成 i 吧,式子越来越丑了。
先看 ∑i≤r(ni)xi(1−x)n−ii=nx∑i≤r−1(n−1i)xi(1−x)n−1−i
所以主攻 G(x)=∑i≤r(ni)xi(1−x)n−i
尝试展开 (1−x)n−i ,变成了 ∑i≤r(ni)xi∑j≤n−i(n−ij)(−x)j
发现两个组合数有点像,所以直接展开变成 n!∑i≤r1i!xi∑j≤n−i1(n−i−j)!j!(−x)j
考虑 xd 的系数就是 ∑i+j=d,i≤r1i!(−1)jj!
所以关键就是求 H(x)=(∑ri=0xii!)(∑j=0(−x)jj!)=e−x(∑ri=0xii!)
发现 H′(x)=−xrr!e−x ,就做完了。
GDKOI2021 某道题
题意大概是 fi=∑i−1j=1fjfi−jpj
其中有 有 m 个条件 Pai=bi ,其余的 pi=A
然后让你求 fn 。n≤106,m≤10,ai<ai+1 ,模数是 109+7
一段一段的算,对于(ai,ai+1) 这部分可以得到一个 F(x)=AF(x)2+G(x)F(x)+x ,其中 G(x)=∑j≤ixajfajbj
然后呢 F(x)=−G(x)−√G(x)2−4Ax2A ,对着算就完了。
这里有个技巧:求 B(x)=A(x)k ,就对它求导,同乘 A(x) 得到 kA′(x)B(x)=B′(x)A(x) ,然后能递推算
GDKOI2021 另一道题
题意大概是有一些黑点,n≤15
然后一天时间内,一个格子变成周围四个格子的异或。
问 L 天到 R 天间每天黑点数量的和。
我们搞个经典的 (xi,yi)−>(xi+yi,xi−yi) ,每次就变成了 (x±1,y±1)
我们按 xi 的奇偶把点分成两堆。
然后怎么判断一个格子 (X,Y) 在 T 天的时候的状态,就是 ∑(Txi−X+T2)(Tyi−Y+T2) 是否为奇。
判断组合数的奇偶,想到了卢卡斯定理。我们钦定一个子集 S,使得对于 i∈S (Txi−X+T2)(Tyi−Y+T2) 是奇数。
我们钦定完子集后,注意到整体平移不影响答案,所以转化成所有 xi,yi 都是非负的偶数。
枚举 x=T−X2,y=T−Y2 就变成有多少 T,X,Y 满足所有 (Txi+x) 及 (Tyi+y) 是奇数。
数位 dp 即可,从低到高 dp 并记录 T 卡到 lim 没有,以及有多少个 xi+x 进了位,多少个 yi+y 进了位。
越大的数越容易进位,所以确定多少个进了位,哪些 i 进了位就确定了。
复杂度 O(2nn2logV)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)