Codeforces Round #628 (Div.2)
A. EhAb AnD gCd
Solution
输出 $1$ 和 $x-1$ 即可。
Code
1 |
|
B. CopyCopyCopyCopyCopy
Solution
排序去重后输出长度。
Code
1 |
|
C. Ehab and Path-etic MEXs
Solution
考虑 $0,1$ 同时出现的路径,只需要保证 $2$ 不在该路径上。实现上,找一个度数大于 $2$ 的节点,把与之相连的边依次赋为 $0,1,2\cdots$ 即可达到目的。
Code
1 |
|
D. Ehab the Xorcist
Solution
我们有性质:$a\oplus b \leq a+b$,证明不难:$a+b$ 可以表达为 $a\oplus b$ 作为当前位、$a\& b$ 作为进位,即 $a+b=a\oplus b+((a\& b)<<1)$,所以加法比异或多了进位,当然更大。
$u>v$ 时:由上述性质,无解;
$u=v$ 时:特判掉 $u=v=0$ 的情况,然后输出 $u$ 就好;
$u<v$ 时:
- $v$ 奇 $u$ 偶,无解,因为 $u$ 只能分解为偶数个偶数和偶数个奇数之和,它们的异或一定是偶数;
- $v$ 偶 $u$ 奇,无解,因为 $u$ 只能分解为若干个偶数和奇数个奇数之和,它们的异或一定是奇数;
- $u,v$ 同奇偶,由于 $u,\frac{v-u}{2},\frac{v-u}{2}$ 是满足条件的解,但是若前两项可以合并($u+\frac{v-u}{2}=u\oplus\frac{v-u}{2}$),则合并后输出。
Code
1 |
|
E. Ehab’s REAL Number Theory Problem
Solution
【参考官方题解】首先,如果一个数有完全平方因数,除掉后不影响答案。然后为方便起见,特判掉存在完全平方数或存在两个数相等的情况。
由于每个数最多 $7$ 个因数,所以每个数最多有 $2$ 个质因数,即每个数都只能是 $p$ 或 $p\cdot q$ 两种情况( $p,q$ 质数)。以所有质数和 $1$ 为点,对于 $p$ 连接 $1,p$ 两点,对于 $p\cdot q$ 连接 $p,q$ 两点,则问题转化为寻找图中的最小环。从每个点分别 $bfs$ 可以求出包含这个点的最小环大小,但这是 $O(n^2)$ 的;事实上,我们只需要从数字小于 $\sqrt{\max(a_i})$ 的点出发 $bfs$ 即可,因为一个环一定包含数字小于 $\sqrt{\max(a_i)}$ 的点。
Code
1 |
|
F. Ehab’s Last Theorem
Solution
【参考官方题解】$dfs$ 并考虑 $dfs$ 树,若某祖先到当前点的路径与返祖边构成了一个长度大于等于 $\lceil\sqrt n\rceil$ 的圈,输出即可;否则,当前点的返祖边一定不超过 $\lceil\sqrt n\rceil-2$ 条,如果其邻域内其他点都没被纳入独立集里,就把它纳入独立集里。如此,若 $dfs$ 结束后没有找到圈,我们一定找到了足够大的独立集,因为每个点最多阻碍了 $\lceil\sqrt n\rceil-1$ 个点。
Code
1 |
|
Codeforces Round #628 (Div.2)
http://xyfjason.github.io/blog-xcpc/2020/03/15/Codeforces-Round-628-Div-2/