Sound Souler —— 3rd Avenue

感谢 @laerav 的帮助。

花絮:本来是团队赛,但是改成个人赛了,于是把最难的两个题删掉了。

难度被严格控了,更比拼谁不会卡题而不是谁能做出难题一点。

A. Xor Magic Square

https://qoj.ac/problem/17721

nn 为偶数是好做的。

nn 为奇数按照模 44 分类,大致是一条对角线上全填 33 和一个 11 一个 22,剩余的保证每行每列都是一个 22 一个 33 剩下全是 11。容易构造出合法的答案,更容易证明没有更小的答案。代码

B. Adding Integers

https://qoj.ac/contest/1751/problem/10013

这一坨组合数乘积相当于在 nn 个数中选择 qq 轮,第一次给 a1a2a_1-a_2 个染色,最后给 aqa_q 个染色,总共有 q+1q+1 种颜色。

于是 f(q)=(q+1)nf(q)=(q+1)^n,直接计算。代码

C. Minimum Distance Tree

https://qoj.ac/contest/2071/problem/10982

由最小瓶颈生成树的定义,如果有解答案只能是最小生成树。因此直接求出一棵最小生成树然后判断每条边的长度是否大于等于树上距离即可。代码

D. Make Many KUPC

https://qoj.ac/contest/3575/problem/17724

由排序不等式,倒着扫直接贪心即可。代码

E. Billiard

https://qoj.ac/contest/1376/problem/7505

x,yx,y 坐标是独立的,分别考虑。即 {t0(mod2n)t0(mod2m)\begin{cases}t\equiv 0\pmod {2n} \\ t\equiv 0\pmod {2m} \end{cases},所以答案是 2nm/gcd(n,m)2nm/\gcd(n,m)

F. Birthday

G.

H. Interesting Paths

https://qoj.ac/contest/1699/problem/8517

实际上说的这是个 DAG,只要在这个 DAG 上连通的路径,都可以被统计到答案中。画一画可以发现答案是 mn+2m-n+2

证明的话只需要一开始找一条路径。对于一个未被访问过的边,我们可以沿着它去扩展。连通一个点需要消耗一条边。代码

I. Sliding Tiles

https://qoj.ac/contest/2657/problem/15402

首先这个往下滑是假的,因为对答案没有影响。

模拟往右滑动的过程。维护的是竖着的一段一段的滑动,因此不难想到去维护差分数组。


Nothing built can last forever.
本站由 iznomia 使用 Stellar 1.30.4 主题创建。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。