2021 CCPC 广州站总结

热身赛

题目比较水,打完后测了下环境(其实和上次一样),然后就跑路了

正式赛

2021 CCPC 广州站总结_第1张图片
和桂林那场形成鲜明反差。
毕竟北大出题,风格不一样
开场10min没人过题,意识到情况不妙。
之后看到 I 有人过,手推了一下,猜了个结论发现WA了,发现推的有问题,改了一下过了。
H 队友WA了一发,改了细节,过了。
C 我提出 O ( n log ⁡ n ) O(n\log n) O(nlogn) 的做法,队友在想线性做法。交了一发WA了,发现算法假了,之后花大量时间重想并实现了一发新的算法,然后TLE了。
队友测了一发极限数据,本机1100ms,被卡常了。我们不知道是改线性,改实现还是直接卡常。
期间另一个队友推F的结论,先猜了个假的,后来打表找了规律,然后过了F。此时已经接近封榜。
队友提出换一下C的二分上界,竟然过了。
最后和队友推K,发现K是一个Mobius反演,最后40min才开始写,所幸没出大问题,临近结束前过了,苟到了Au。

简要题解

I

1 ∼ n 1\sim n 1n 的排列,前 i i i 项和是 2 i 2i 2i 的倍数,求方案数
思路:最后一项一定是 1, ( n + 1 ) / 2 (n+1)/2 (n+1)/2 n n n ,而且发现 n ≥ 4 n\ge 4 n4 ( n + 1 ) / 2 (n+1)/2 (n+1)/2 都是不合法的,于是答案就是 3 × 2 n − 2 3\times 2^{n-2} 3×2n2

C

长度为 n n n 的项链上有 m m m 个珠子,每个珠子分一段,问最长段长度最小值。
思路:二分+贪心,贪心我是定义了结构体,用栈维护,可能常数有点大?

K

对所有长度为 n n n ,元素不超过 m m m l c m ≥ p lcm\ge p lcmp g c d ≤ q gcd\le q gcdq 的数列的所有元素的积求和。
思路:
l c m ∣ x lcm|x lcmx 的数列: h ( x ) = ( ∑ d ∣ x d ) n h(x)=(\sum_{d|x}d)^n h(x)=(dxd)n
l c m = x lcm=x lcm=x 的数列: g ( x ) = ∑ d ∣ x μ ( d ) h ( x d ) g(x)=\sum_{d|x}\mu(d)h(\frac{x}{d}) g(x)=dxμ(d)h(dx)
l c m = x , g c d = 1 lcm=x,gcd=1 lcm=x,gcd=1 的数列: f ( x ) = ∑ d ∣ x μ ( d ) g ( x d ) f(x)=\sum_{d|x}\mu(d)g(\frac{x}{d}) f(x)=dxμ(d)g(dx)
l c m = x t , g c d = t lcm=xt,gcd=t lcm=xt,gcd=t 的数列: t n f ( x ) t^nf(x) tnf(x)

数列总贡献: H ( m ) = ( m ( m + 1 ) 2 ) n H(m)=(\frac{m(m+1)}{2})^n H(m)=(2m(m+1))n
g c d = 1 gcd=1 gcd=1 的数列: G ( m ) = ∑ d = 1 m μ ( d ) H ( [ m d ] ) G(m)=\sum_{d=1}^m\mu(d)H([\frac{m}{d}]) G(m)=d=1mμ(d)H([dm])
g c d = t gcd=t gcd=t 的数列: F ( t ) = t n G ( [ m t ] ) F(t)=t^nG([\frac{m}{t}]) F(t)=tnG([tm])

a n s = H ( m ) − ∑ x = 1 p − 1 g ( x ) − ∑ t = q + 1 m F ( t ) + ∑ t = q + 1 m ∑ x = 1 [ p − 1 t ] t n f ( x ) ans=H(m)-\sum_{x=1}^{p-1}g(x)-\sum_{t=q+1}^mF(t)+\sum_{t=q+1}^m\sum_{x=1}^{[\frac{p-1}{t}]}t^nf(x) ans=H(m)x=1p1g(x)t=q+1mF(t)+t=q+1mx=1[tp1]tnf(x)

别的题我没怎么看,主要是C题卡太久了。

我觉得这套题不适合放在CCPC区域赛。

你可能感兴趣的:(ACM,随笔,算法)