这里会显示出您选择的修订版和当前版本之间的差别。
| 两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
|
2020-2021:teams:mian:nowcoder_training:2020_multi-university_training_contest_4 [2020/07/20 23:09] grapelemonade [Summary] |
2020-2021:teams:mian:nowcoder_training:2020_multi-university_training_contest_4 [2020/07/23 23:31] (当前版本) withinlover [Comments] |
||
|---|---|---|---|
| 行 6: | 行 6: | ||
| * Solved 5 out of 10 problems | * Solved 5 out of 10 problems | ||
| - | * Rank 96/1178 in official records | + | * Rank 28/1159 in official records |
| * Solved 5 out of 10 afterwards | * Solved 5 out of 10 afterwards | ||
| 行 43: | 行 43: | ||
| ===== B ===== | ===== B ===== | ||
| + | |||
| + | 简单推导一下,发现最多可以乘约束个数次。预处理出所有数字最小的质因子然后$O(\log n)$的计算就可以了 | ||
| ===== C ===== | ===== C ===== | ||
| + | |||
| + | 统计变形后的所有子串个数,所有后缀变形后的子串即为所求,后缀的从右至左每次改变的次数不并不多且只改变连续的几位,对所有后缀变形后的串建SAM,记录每个位置结尾的串在SAM中的节点,每次改变跳回到对应的节点,统计即为所有节点$ans=\sum_{\forall i\in SAM}lenth[i]-lenth[parent[i]]$; | ||
| ===== D ===== | ===== D ===== | ||
| + | |||
| + | 将数字拆成一位数会得到最大值≤9; | ||
| + | |||
| + | 若最优结果的各数字位数相同,只需要对n的所有约数长度的答案进行判断; | ||
| + | |||
| + | 若位数不同,则一定存在1000x形式的数字,在串中找出满足条件的最长串,因为最大值≤9,符合条件的串一定为999x和1000x的形式,暴力匹配即可 | ||
| ===== E ===== | ===== E ===== | ||
| 行 73: | 行 83: | ||
| - 调参的时候要冷静合理调参,不要太莽(I) | - 调参的时候要冷静合理调参,不要太莽(I) | ||
| + | Gary: | ||
| + | - 不盲目跟榜(E) | ||
| + | - 有思路尽快分享讨论,码不出来浪费很多时间(D) | ||
| + | Withinlover: | ||
| + | - 习惯改好点,别用cin, cout(B) | ||
| + | - 想好了再写,写了一半在改很花时间(D) | ||