摘要: 原题链接 题解:解决了历史遗留问题。很显然的是,这样操作总和不会变,然后所有 \(gcd\) 的可能的取值都是会是 \(sum\) 的因子,所以可以 \(O(\sqrt {sum})\) 的时间复杂度来枚举 \(gcd\),然后 \(O(n)\) 遍历用最小操作来看是否是小于 \(k\),最后取最大 阅读全文
posted @ 2021-04-15 21:58 u_yan 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 题解:又是dp想不出来的。\(dp_{i, j}\) 代表了,第 \(i\) 位时(从左到右),余数为 \(j\) 的数量。然后发现,状态转移的时候,如果 \(s_i = ?\) 则 \(dp_{i,(j * 10 + k) \% 13} =\sum dp_{i-1, (j * 10 + k) \% 阅读全文
posted @ 2021-04-15 19:31 u_yan 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题解:想到了菊花图,没想到最值就是一棵树,然后是菊花图,然后要让合法点对减少的操作,就是给两个叶子连边,这样就删除了。 代码: #include <iostream> #include <algorithm> using namespace std; typedef long long l 阅读全文
posted @ 2021-04-15 11:59 u_yan 阅读(39) 评论(0) 推荐(0) 编辑