CQOI 2018 简要题解


\(\text{}\)

  冬眠营自闭了,于是划水更一个比较水的省选题解。

Luogu4454 [CQOI2018]破解D-H协议

点此看题:P4454 [CQOI2018]破解D-H协议 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

  BSGS 裸题。

Luogu4455 [CQOI2018]社交网络

点此看题:P4455 [CQOI2018]社交网络 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

  注意是外向生成树的形式,然后 即可。

Luogu4456 [CQOI2018]交错序列

我们称一个仅由 \(0\)\(1\) 构成的序列为”交错序列“,当且仅当序列中没有相邻的 \(1\)(可以有相邻的 \(0\))。
对于一个长度为 \(n\) 的交错序列,统计其中 \(0\)\(1\) 出现的次数,分别记为 \(x\)\(y\)。给定参数 \(a\)\(b\),定义一个交错序列的特征值为 \(x^ay^b\)。注意这里规定任何整数的 \(0\) 次幂都等于 1(包括 \(0^0=1\))。
求所有长度为 \(n\) 的交错序列的特征值的和,除以 \(m\) 的余数。(\(m\) 是质数)
\(n \le 10^7, a, b \le 45\)


  矩阵 动态规划 数学

  CQOI 2018 里面唯一稍有难度的题目。。。然后没有化简式子而是去想组合意义直接不会了。。。

  首先可以有一个比较简单的 DP,\(f(i, j, 0/1)\) 表示前 \(i\) 个数,有 \(j\)\(1\),以及上一个是 \(0/1\) 的方案数,复杂度 \(\mathcal O(n^2)\),过不去。

  注意到 \(a,b\) 很小,我们可以在上面做文章,将答案用 \(y\) 表示出来:

\[(n - y)^ay^b=\sum_{i = 0}^a n^iy^{a+b-i}\binom{a}{i} \]

  只要维护 \(y^{a + b - i}\) 就行了,于是可以维护 \(y^0, y^1, y^2, \dots, y^{a+b}\) 转移的时候增量维护贡献就行了,注意到转移可以写成矩阵的形式,然后矩阵快速幂即可。

  复杂度 \(\mathcal O((a+b)^3\log n)\)

  写完题解发现维护到 \(y\)\(a\) 次幂就行了

Luogu4460 [CQOI2018]解锁屏幕

点此看题:P4460 [CQOI2018]解锁屏幕 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)


  状态压缩

  状态压缩裸题,不讲了。

Luogu4461 [CQOI2018]九连环

点此看题:P4461 [CQOI2018]九连环 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)


  数学 高精度

  看一下样例,可以直接猜出结论:对于答案,就是每次 \(\times 2\),然后每两次就 \(+1\) 一次。

  直接压 17 位,然后高精就可以了,如果提前预处理,时间有保证,但是空间不够,大概有 \(80\) 分;如果每次询问直接算,那么因为数据较水,可以通过

Luogu4462 [CQOI2018]异或序列

点此看题:P4462 [CQOI2018]异或序列 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

  莫队板子题。


  感觉现在的科技去打 2018 的 CQOI 省选几乎绝杀。