CF1332E Height All the Same

原题

翻译

首先看到这题首先可以想到应该和奇偶性相关……

然后就没有一点思路了,遂看题解

首先,可以观察到结果和实际的高度无关,之和高度的奇偶性有关。

这个很好理解,因为我们可以用操作2使得在同奇偶性的数域内变化。

因此我们只考虑操作1

这里要知道一个结论:如果ai,j为奇数的个数cntoai,j为偶数的个数cnte中有一个是偶数,则一定有解;否则一定无解。

证明的话我们可以直到如果对个数为偶数的那些数进行操作1,则必然可以把他们都变成奇偶性相同的数,因此我们就可以直接进行操作2

因此我们分情况讨论:

  • nm为奇数,则显然无论怎么选,ai,j中为奇数的或偶数的个数都一定有一个是偶数,因此答案就是

i=1nj=1m(RL+1)=(RL+1)nm

直接跑一个快速幂即可

  • nm为偶数,则我们要保证ai,j中为奇数的个数和偶数的个数都为偶数才行,因此我们可以得到一个比较暴力的计算方法:

i=0nm2(nm2i)O2iEnm2i

其中O,E分别表示[L,R]中为奇数和偶数的数的个数

我们发现这个式子和什么很像?二项式定理!

(1)(O+E)nm=i=0nm(nmi)OiEnmi(2)=i=0nm2(nm2i)O2iEnm2i+i=1nm2(nm2i1)O2i1Enm2i+1

但其中奇数的部分我们是不想被算的,我们要怎么去除呢?

还是二项式定理!

(3)(OE)nm=i=0nm(1)i(nmi)OiEnmi(4)=i=0nm2(nm2i)O2iEnm2ii=1nm2(nm2i1)O2i1Enm2i+1

因此我们发现有:

i=0nm2(nm2i)O2iEnm2i=(O+E)nm+(OE)nm2

最终复杂度O(lognm)

p.s.这题有一个细节:当你WA on #57时,要知道快速幂里用欧拉定理时特判a=0的情况,如下数据:

998244352 2 1 998244353

其中ab=0998244352×200,因此应该返回0

posted @   FOX_konata  阅读(25)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示