Sound Souler —— 3rd Avenue
感谢 @laerav 的帮助。
花絮:本来是团队赛,但是改成个人赛了,于是把最难的两个题删掉了。
难度被严格控了,更比拼谁不会卡题而不是谁能做出难题一点。
A. Xor Magic Square
为偶数是好做的。
为奇数按照模 分类,大致是一条对角线上全填 和一个 一个 ,剩余的保证每行每列都是一个 一个 剩下全是 。容易构造出合法的答案,更容易证明没有更小的答案。代码。
B. Adding Integers
https://qoj.ac/contest/1751/problem/10013
这一坨组合数乘积相当于在 个数中选择 轮,第一次给 个染色,最后给 个染色,总共有 种颜色。
于是 ,直接计算。代码。
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
坐标是独立的,分别考虑。即 ,所以答案是 。
F. Birthday
G.
H. Interesting Paths
https://qoj.ac/contest/1699/problem/8517
实际上说的这是个 DAG,只要在这个 DAG 上连通的路径,都可以被统计到答案中。画一画可以发现答案是 。
证明的话只需要一开始找一条路径。对于一个未被访问过的边,我们可以沿着它去扩展。连通一个点需要消耗一条边。代码。
I. Sliding Tiles
https://qoj.ac/contest/2657/problem/15402
首先这个往下滑是假的,因为对答案没有影响。
模拟往右滑动的过程。维护的是竖着的一段一段的滑动,因此不难想到去维护差分数组。