这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
2020-2021:teams:intrepidsword:2020-nowcoder-multi-4 [2020/07/28 21:23] admin [F. Finding the Order] |
2020-2021:teams:intrepidsword:2020-nowcoder-multi-4 [2020/07/28 22:56] (当前版本) admin [I. Investigating Legions] |
||
---|---|---|---|
行 32: | 行 32: | ||
===== D. Dividing Strings ===== | ===== D. Dividing Strings ===== | ||
- | **题目大意**: | + | **题目大意**:给你一个数字串,让你分割成若干段,使得极差最小。不允许前导 $0$。$n\le10^{5}$,$\sum n\le10^{6}$。 |
- | **题解**: | + | **题解**:首先可以一位一位分割,因而答案最大是 $9$。各个部分的位数至多相差一位。 |
+ | |||
+ | 对于所有部分位数相同的情况,可以枚举 $n$ 的约数,至多 $128$ 个,由于常数小,可以通过。考虑更快一点的做法,由于答案不超过 $9$,因而每个部分一定是这样的形式:一段 ''%%lcp%%'',一位数字至多相差 $1$,若干个 $0$(对应前一位大 $1$ 的情况)或若干个 $9$(对应前一位小 $1$ 的情况),最后一个数字可任取。那么用后缀数组即可实现。甚至你可以不用后缀数组,因为约数和是小于调和级数的,所以也可以暴力 ''%%check%%'' 前两段然后再搞搞。不过总而言之,后面两种方法都是很麻烦的。 | ||
+ | 对于至多相差一位的情况,则只能是 $10000\cdots$ 和 $9999\cdots$。与上面类似判断即可。 | ||
===== E. Eliminate++ ===== | ===== E. Eliminate++ ===== | ||
行 51: | 行 54: | ||
===== H. Harder Gcd Problem ===== | ===== H. Harder Gcd Problem ===== | ||
- | **题目大意**: | + | **题目大意**:求 $1\sim n$ 的最大匹配,其中不互质的两个数之间连边。 |
- | **题解**: | + | **题解**:注意到 $1$ 及所有 $>\frac{n}{2}$ 的质数是孤立点,不管它们。我们证明剩下的点总能剩最多一个。首先以所有的奇质数为下标设置桶,将每个奇数随意扔进它某个质因子代表的桶里。这样,每个桶内两两匹配后,至多剩余一个数,我们把它和 $2p$ 匹配。这样就只剩若干偶数了,显然至多有一个不能匹配。 |
===== I. Investigating Legions ===== | ===== I. Investigating Legions ===== | ||
- | **题目大意**: | + | **题目大意**:有 $n$ 个点,$m$ 种类型,现在告诉你两两点对是否属于同一连通块,但是有至多 $5\%$ 的概率反转。让你求出每个点的类型。其中,$30\le n\le300,1\le m\le\lfloor\frac{n}{30}\rfloor$。每个点随机一种类型,出错也是随机的。 |
- | **题解**: | + | **题解**:对于每个点,考虑剩下的点哪些和它属于一个连通块。对于同一连通块的点,它们共同的邻点应当很多,反之则应当很少。对于同一连通块的,大致计算一下期望应当是 $\frac{n}{m}-\frac{2n}{20m}$,反之则大致是 $\frac{2n}{20m}$。经过本地测试,取最大值的 $\frac{2}{3}$ 为阈值可正确判断,并且 ''%%ac is ok%%''。 |
===== J. Jumping on the Graph ===== | ===== J. Jumping on the Graph ===== |