# | Who | = | Penalty | A | B | C | D | E | F | G | H | I | J | Dirt |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
5 | 大吉大利,今晚吃 mian(); | 5 | 815 | +5 00:41 | +2 04:36 | -3 | +1 00:16 | + 01:26 | +1 03:36 | 64% 9/14 |
Solved | A | B | C | D | E | F | G | H | I | J |
---|---|---|---|---|---|---|---|---|---|---|
Pantw | - | √ | √ | √ | ||||||
Withinlover | √ | - | ||||||||
Gary | √ |
(√ for solved, O for upsolved, - for tried but not solved)
简单推导一下,发现最多可以乘约束个数次。预处理出所有数字最小的质因子然后$O(\log n)$的计算就可以了
统计变形后的所有子串个数,所有后缀变形后的子串即为所求,后缀的从右至左每次改变的次数不并不多且只改变连续的几位,对所有后缀变形后的串建SAM,记录每个位置结尾的串在SAM中的节点,每次改变跳回到对应的节点,统计即为所有节点$ans=\sum_{\forall i\in SAM}lenth[i]-lenth[parent[i]]$;
将数字拆成一位数会得到最大值≤9;
若最优结果的各数字位数相同,只需要对n的所有约数长度的答案进行判断;
若位数不同,则一定存在1000x形式的数字,在串中找出满足条件的最长串,因为最大值≤9,符合条件的串一定为999x和1000x的形式,暴力匹配即可
水题。
从大到小枚举质数 p,每次拿出未匹配的 p 的倍数,把这些数按照最小质因子从大到小排序,然后直接从头两个两个选。
读题发现错误率最高 5%,那么我们直接枚举当前未匹配的第一个点,拎出其所有邻接点,判断所有未匹配点到拎出来的点集中的点的连边数,设置一下允许浮动范围,迭代两次。最后全局重判一下,根据字典序调整一下标号,就卡过去了。
ptw:
Gary:
Withinlover: