A. Array Coloring
给一个长度为 n 的数组,判断数组能否分为两组元素的加和的奇偶性相同的两组
思维
考虑数组中奇数的数量,由于奇数 + 奇数 = 偶数
,奇数 + 偶数 = 奇数
,如果有偶数个奇数,我们可以将奇数其平分到两个数组中,否则无论如何都无法满足条件
B. Maximum Rounding
四舍五入到某一位置,使的数字最大。该操作可以执行多次,输出最大的数字
高精
直接模仿高精度,从最低位开始判断
C. Assembly via Minimums
长度为 n 的序列 a 可以通过特定规则变化成长度为 2n(n−1) 的序列 b,现在输入一个序列 b,输出任意一种能变换成 b 的序列 a。
变化规则是:b=min(ai,aj)∣i∈[1,norm(a)]∧i∈[1,norm(a)]∧i=j
思维
手玩样例可以发现,如果一个数在 b 中出现了 m 次,那么它在 a 中一定有 m 个比它大的数,由于题目保证一定有解,因此可以对 b 序列排序后直接输出
D. Strong Vertices
输入两个数组 a 和 b。构造一个有向图,如果 au−av≥bu−bv(u=v), 那么 u 到 v 就有一条边。
输出有多少个顶点可以直接到达其他所有顶点
思维
式子变形成 au−bu≥av−bv,然后只需要统计满足 ∀v,au−bu≥av−bv 的数量即可
E. Power of Points
玩样例可以发现 ∑fi 实际上是区间的长度,因此答案可以所以一个前缀和和后缀和求解答
F. Sum and Product
解方程, 统计满足下式的解的数量
⎩⎨⎧aiaj=xai+aj=y
数学
解一元二次方程
G. Counting Graphs
输入一棵有 n 个顶点的最小生成树,每一条边权为 wi。统计有多少中加边方案使得满足以下条件
- 无重边,自环
- 所有边权不超过 S
- 加边之后的产生的图的最小生成树唯一
- 最小生成树是最初时给出的树
答案 mod 998244353
最小生成树
组合数学
思维