AT2346 No Need】的更多相关文章

atcoder上的题目 链接 一道思维题目 可以发现如果X是可有可无的,那么所有小于X的数也一定是可有可无的, 所有我们只要找出最大的那个可有可无的数字就好了 进一步分析,发现 若A1, A2, . . . , Ai 的和为 S,当且紧当 Ai+1, Ai+2, . . . , AN 凑不出任何个 K − S 到 K − 1 之 间的数字, A1, A2, . . . , Ai 都是可有可无的. 我们来不太严谨的证明一下 若A1, A2, . . . , Ai 的和为 S,如果 Ai+1, Ai…
这里介绍几种做法. 解法一 首先可以转化一下题意,\(\forall i\) 如果 \(i\) 不是可有可无的当且仅当不用 \(i\) 能拼出 \([K - a_i, K)\) 中的数. 基于观察可以发现,对于 \(\forall i\) 如果 \(i\) 不是可有可无的,那么 \(\forall j, a_j \ge a_i\) 都不是可有可无的,证明如下: 取出使得对于 \(i\) 能拼出 \([K - a_i, K)\) 中一个数的集合 \(S\),分以下两种情况讨论: 若 \(j \in…