GDKOI 2024 题解 (坑:D1T3)

鸽了一些题。

匹配

先抽出来一个完美匹配,然后尝试调整。
调整相当于:找一个偶环,满足匹配的边和未匹配的边交错,且偶环的总异或和为 \(0\),是不是写个暴力就好了?
发现冲过去了,很牛逼,复杂度 \(O(n^3)\)(?),Code

不休陀螺

一个区间可以被打出的条件是:

  • \(\Delta_i=b_i-a_i\),则 \(x=\sum \Delta_i \ge 0\),令 \(y=\sum \Delta_i[\Delta_i<0]\)
  • \(\forall \Delta_i<0, E-a_i+y-\Delta_i\ge 0\)
  • \(\forall \Delta_i\ge 0,E+y-a_i\ge 0\)

考虑扫描线,对区间右端点向右移动,考虑如果这个右端点 \(\Delta <0\),左端点肯定可以往后走,\(\Delta>0\),丢掉它对二三两个条件没什么影响。
使用 ST 表分开维护 \(\Delta <0\)\(b_i\) 最大值,\(\Delta>0\)\(a_i\) 最大值,即可双指针得到满足 \(2,3\) 的最大的 \(r\) 的位置,对于条件 \(1\) 直接数点即可,\(O(n\log n)\)Code
哈哈傻逼题写了这么久。

计算

首先有 \(\gcd(x^a-1,x^b-1)+1=x^{\gcd(a,b)}\)
于是 \(L,R\) 可以很快的计算得到,但是区间是很大的,但是发现区间内的数 \(\bmod m\) 之后是有长度为 \(m\) 的循环节的,令循环节的个数为 \(n=(R-L+1)/m\),则答案对应的多项式是:

\[\prod_{i=0}^{m-1}(1+x^i)^n \]

答案也就是这个多项式的 \(km\) 项系数之和,套路的,施单位根反演:

\[\begin{aligned} &\frac{1}{m}\sum_{j=0}^{m-1}\prod_{i=0}^{m-1} (1+\omega_m^{ij})^n\\ \end{aligned} \]

对于 \(\prod_{i=0}^{m-1}(1+\omega_m^{ij})\),发现此时按 \(j\) 为步长存在一个大小为 \(\gcd(j,m)\) 的剩余系,令 \(d=\gcd(j,m)\),则这个东西就是 \(\prod_{i=0}^{m/d-1}(1+\omega_{m/d}^{ij/d})^d\),此时 \(j/d\) 的若干倍恰好遍历所有的 \(m/d\),可以省去,枚举 \(d\),则有:

\[\begin{aligned} &\frac 1m\sum_{d|m}\sum_{j=0}^{m-1}[\gcd(m,j)=d](\prod_{i=0}^{m/d-1}\omega_{m/d}^i+1)^{dn}\\ =&\frac 1m\sum_{d|m}\varphi(m/d)(\prod_{i=0}^{m/d-1}\omega_{m/d}^i+1)^{dn} \end{aligned} \]

对于方程 \(z^m-1=0\)\(m\) 个解 \(\omega_{m}^0,\omega_{m}^1,\ldots,\omega_m^{m-1}\),故 \(z^m-1=\prod_{i=0}^{m-1}(z-\omega_m^i)\)。取 \(z=-1\) 得到 \((-1)^m-1=\prod_{i=0}^{m-1}(-1-\omega_{m}^i)\)
对于 \(2|m\),发现答案一定是 \(0\),对于 \(m\) 为奇数,有 \(\prod_{i=0}^{m-1}(\omega_{m}^i+1)=2\)
于是即求:

\[\frac 1 m\sum_{d|m\land m/d\bmod 2=1}\varphi(m/d)2^{nd} \]

直接暴力枚举 \(m/d\) 即可,因为会及时剪枝掉偶数,所以很快的,Code

染色

单位操作是染一个十字架,于是考虑一下这个东西可以构造出什么样的有用操作。
一个想法是在十字架的四端叠合一个十字架,手摸一下发现得到了一个更大的十字架。
定义:\(k\) 阶十字架表示 \((i,j),(i+2^k,j),(i-2^k,j),(i,j-2^k),(i,j+2^k)\),可以发现在 \(k\) 阶十字架的所有非中心点再叠合一个 \(k\) 阶十字架,可以得到 \(k+1\) 阶十字架。
发现对于 \(n-1\) 阶十字架,\(i+2^{n-1}\equiv i-2^{n-1}\pmod {2^n}\),所以对于每个点构造 \(n-1\) 阶十字架即可。
于是倒着枚举阶数,对每个位置扫一下需要构造的下一阶十字架就行了,\(O(n4^n)\),从这个构造也会发现是一定有解的,Code

posted @ 2024-01-19 10:19  cnyz  阅读(99)  评论(0编辑  收藏  举报