T1:简单模拟,只需要检测到 | 后输出后面读到的所有内容即可。
个人难度:红
T2:构造题。
个人难度:橙
首先不考虑封印格子的情况,容易想到最佳策略是填充一条对角线上的所有格子,不难证明不存在更优的填充方案。
(画图软件画的,略有抽象)
接下来考虑封印的情况。若 nnn 为偶数,由于两条对角线没有交点,因此封印一条对角线上的点仍可以使用另一条对角线,无影响。
若 nnn 为奇数,则可以封印两条对角线的交点。此时我们这样构造。
T3:模拟题。
个人难度:黄
考虑平局的分数一定形如 (0,0),(1,1),(2,2),...,(n,n)(0,0),(1,1),(2,2),...,(n,n)(0,0),(1,1),(2,2),...,(n,n)。因此我们可以维护一个当前到达的最高的一个平局分数,暴力模拟即可。
注意若当前已经是一个平局状况,要防止重复统计,即将维护的那个分数 +1+1+1。
T4/T6:诈骗题/题目性质题
个人难度:绿
注意到 f(x)=∣ac−bc∣=∣(a−b)(ac−1+ac−2b+ac−3b2+...+abc−2+bc−1)∣f(x) = |a^c-b^c| = |(a-b)(a^{c-1}+a^{c-2}b+a^{c-3}b^2+...+ab^{c-2}+b^{c-1})|f(x)=∣ac−bc∣=∣(a−b)(ac−1+ac−2b+ac−3b2+...+abc−2+bc−1)∣。
题目中 a,b,ca,b,ca,b,c 都是正奇数,因此因式分解后面的一项相当于 ccc 个 奇数相加,即奇数个奇数相加,而这必定也是奇数。不难证明一个数乘以奇数后二进制后 000 的个数不变,所以 f(x)f(x)f(x) 的美丽度只与 a−ba-ba−b 有关。
因此我们只需要预处理前 nnn 个正奇数两两作差所有不同的数的美丽度即可。
接着考虑期望,E(X)=∑pixiE(X) = \sum p_ix_iE(X)=∑pi xi ,而所有的 pip_ipi 相等,而总情况数为 An3A_n^3An3 。但是我们注意到结果与 ccc 取什么和 a,ba,ba,b 的顺序无关。因此我们可以规定 a<ba<ba<b 的同时不枚举 ccc。这样 E(X)=SUM(X)/Cn2E(X) = SUM(X)/C_n^2E(X)=SUM(X)/Cn2 ,SUM(X)=∑i=1n−1(n−i−1)×g(2n)SUM(X) = \sum_{i=1}^{n-1} (n-i-1)\times g(2n)SUM(X)=∑i=1n−1
(n−i−1)×g(2n),其中 g(x)g(x)g(x) 为 xxx 的美丽度。
T5:大模拟
首先分析题目,不难发现无论怎样操作,每一行,每一列的总障碍数都不变,都只能改变它们的相对位置。
不难注意到一种情况:如果有一个点的所在行或者所在列都有障碍物,那么我们可以先把这两个障碍物移动到与它相邻的位置,再把这个整体移到某一个角落(这个角落位置根据移动的两个障碍物与这个点的相对方位决定)。如对于
其中满足要求的点为 sss。那么我们可以先交换第 3,53,53,5 列,第 2,42,42,4 行,使两个障碍物与之相邻。
接着按顺序交换第 (5,6),(4,5)(5,6),(4,5)(5,6),(4,5) 行,第 (1,2),(2,3)(1,2),(2,3)(1,2),(2,3) 列,即可将 sss 卡到角落。
最后将 Alice 放到 sss 即可。不难发现若有一个点的所在行或者所在列都有障碍物,则一定可以这样构造出特定解。
那么如果没有这样的点呢?这就意味着任意两个障碍物所对应的矩形的顶点都有障碍物。简单推导后可以知道,在这种情况下,每一行以及每一列要么没有任何障碍物,要么障碍物排布完全相同。
就像这样:
在这种情况下,如果没有某一行或者某一列全是障碍物,那么答案必定是 NoNoNo。这是因为无论你怎样操作,都会留有空隙。
而如果有呢?
那我们可以这样:在其中找一个不与 XXX 在同一行及同一列的点,将这个点所在行/列移动到第 111 行/列,将XXX 所在行/列移动到最后一行/列。这样全是障碍物的那一行/列必定在中间。