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 省选几乎绝杀。