Contest Info
[Practice Link](https://codeforc.es/contest/1207)
Solved | A | B | C | D | E | F | G |
---|---|---|---|---|---|---|---|
4/7 | O | O | O | Ø | - | - | - |
- O 在比赛中通过
- Ø 赛后通过
- ! 尝试了但是失败了
- - 没有尝试
A. Cards
签到。
B. Multiplication Table
题意:
给出一个(n cdot n)的矩阵,(a_{i, j} = b_i cdot b_j),现在告诉你(a_{i, j}(i
eq j)),要你还原出(b_i)。
思路:
考虑(a_{1, 2} cdots a_{1, n}),我们发现(b_1)肯定是这些数的(gcd)的因数,那么枚举因数,(n^2)判断即可
C. Substring Game in the Lesson
题意:
给出一个字符串,问你刚开始有个子串(S[l, r]),现在要求找一个(l' leq l, r' geq r),使得(S[l', r'])的字典序小于(S[l, r])。
两个人轮流操作,谁不能操作谁输,问两个人最优操作下,对于每个(i)令(l = r = i),谁会胜利?
思路:
显然,如果可以找到一个(l', r'),那么我们肯定可以找到最左的(l'),使得下一个人没办法操作。
现在(l = r = i),如果存在字典许比它小的,显然是第一个字母就比(S_i)小。
那么问题转化成,对于每个(i),是否存在一个(j(j < i))并且(S_j < S_i)
D. Alex and Julian
题意:
有一个集合(B),以及所有的整数组成的点,对于一个整数(i),那么该点的标号为(i),现在如果两个点(i, j)满足(|i - j| in B),那么(i, j)之间有一条无向边。
问至少删去(B)中多少个数,使得所有点按要求连完边之后该图是一个二分图。
思路:
- 没有奇圈的图是一个二分图
考虑(x, y),假设从(1)出发,往后连边,那么他们相遇的点是(lcm(x, y) + 1),那么这个环的边数是:
我们发现要使得这个式子不能为奇数,那么显然有偶加偶或者奇+奇。
我们考虑先将两个数都尽可能除(2),直到这两个数的公约数中没有(2)为止。
然后再来判断,那么现在至少有一个数是奇数,假设为(x),那么剩下的公约数肯定是个奇数。
那么考虑剩下的(x, y):
- 如果(x, y)都是奇数,那么除掉一个奇数后还是奇数。
- 如果只有一个是奇数,那么偶数的那个除掉一个奇数还是偶数,奇数那个除掉奇数还是奇数,那么就是奇 + 偶 = 奇,不合法
所以所有可以共存的数必然满足他们的最低二进制位一样。