Codeforces Round #628 (Div. 2)
久违的(?)更新
实习offer疑似要因为实习时间太短告吹了,只能打打cf维持生活这样子
A. EhAb AnD gCd
给一个数x,找到满足$GCD(a,b)+LCM(a,b)=x$的数对a,b
很显然是1+(x-1)嘛
1 |
|
B. CopyCopyCopyCopyCopy
把长度为n的序列复制n次,问它的最长上升子序列长度。
第i组有效的是第i个大的数,所以答案是序列里不同数字的个数。
1 |
|
C. Ehab and Path-etic MEXs
给树上每条边一个0~n-2的不重复权值,怎么使树上所有路径的MEX最大值最小。
我的思路是把最小值赋给叶子的父边,这样在叶子个数超过3(也就是不是链的情况)时,MEX的最大值不会超过2。
1 |
|
D. Ehab the Xorcist
给定两个非负整数$u$,$v$,求一个元素个数最少的数组,满足它们的异或和为$u$,和为$v$.
题解
先特判u=0或者u=v的情况。当v>u或者(v-u)%2==1
时无解。
对于(v-u)%2==0
的情况,如果u&((v-u)>>1)==0
,答案就是u^((v-u)>>1),(v-u)>>1)
,否则就是u,(v-u)>>1,(v-u)>>1
,因为前者将a[0]和a[1]合并之后不影响它们的和。
1 |
|
E. Ehab’s REAL Number Theory Problem
给定一个长度为$n(1 \le n \le 10^5)$的数组,元素大小满足$(1 \le a_i \le 10^6)$且元素的因数个数不超过7.找出最小的子集大小,满足子集中元素的积是一个完全平方数。
题解
首先对元素做预处理,只留下满足cnt%2==1
的质数(因为平方数不影响答案)。
特判预处理后存在元素为1或者两个元素相等的情况。
考虑元素的因数个数不超过7这个条件,说明元素本身只有最多2个质因数(如果质因数为3,因数个数等于8)。
对于元素的质因数p,q(如果小于2,令其它为1)建图,连边p-q,边表示某个元素。对于图上的路径s-t,除了起点s和终点t,其它质数都出现了两次。所以答案就是这张图上的最小环,枚举起点,用BFS树求解即可。
1 |
|
F. Ehab’s Last Theorem
给定一张n个点的图,保证至少存在以下一种情况:
存在一个恰好有$\lceil\sqrt{n}\rceil$个点的独立集
存在一个至少有$\lceil\sqrt{n}\rceil$个点的环
找到上述其中一种的任意一个合法解并输出。
题解
对于情况2,只需要dfs树找到图的最大环。如果不满足条件,对dfs树上的节点01染色,保证取一个点就不取连向它的所有点来求独立集。
赛中没调出来还越写越丑,码力属实不大行。
1 |
|