3706: 补幺梨(第七轮04)

内存限制:512 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:1 解决:0

题目描述

传说中,早在公元前  114514 年,有个神秘的国家, 叫做补幺国。他们当时就已 在用一种叫做“补幺梨”的货币,其因形状长得像梨子而得名。

补幺人通过“补幺梨”货币来进行交易。具体地  补幺梨”有n种面值, 分别为 a1, a2, ⋯ , an 。

补幺人认为,在他们的视野里,m  “补幺梨”基本面值的上限。因此, 他们为了    尽可能让这些基本的面值能覆盖所有面额,这n种面值是在[1, m]内等概率随机的。 补幺国王掌管大权,每种”补幺梨“他都有∞枚。但是,即便他拥有再多的硬币,

他还是很惊叹竟然有这些”补幺梨“凑不出的面额!

古人的智商自然是有限的,因此他们只能意识到问题,但不能解决问题。

作为十万年后的我们,古人借助时光机向我们发出求助。你需要帮他们计算出最 大的不能被表示的面额。

 

本场比赛大样例

https://uploadfiles.nowcoder.com/files/20211016/%E5%A4%A7%E6%A0%B7%E4%BE %8B.zip

输入

第一行,输入三个数n, m, seed,表示“补幺”的面值种数,基本货币的金额上限, 以及随机种子。

对于a1, a2, ⋯ , an“补幺人”通过下述 c++程序的 mt19937 随机数得到(需  c++11):

 int main() {

scanf("%d%d%d", &n, &m, &seed);

mt19937 rng(seed);

auto get = [&]() {

uniform_int_distribution<int> qwq(2, m);

return qwq(rng); };

for (int i = 1; i <= n; i++) { a[i] = get();

}

输出

你需要帮补幺人计算出最大不能被表示的面额。

不难发现,在给定的数据范围下,必定存在不能被表示的面额。

样例输入 复制

5 5 3

样例输出 复制

1

提示

【样例 1 输入】

5 5 3

【样例 1 输出】

1

【样例 1 说明】

注意,样例仅作为参考。该数据范围不会出现在最终测试数据中。 生成的序列为 4 2 4 5 3。最大不能被表示的金额显然是 1。

【样例  2 输入】

2 100 10

【样例 2 输出】

2309

【样例 2 说明】

生成的序列为 78 31。最大不能被表示的金额是 2309。

【样例  3 输入】

3 100 10

【样例 3 输出】

89

【样例 3 说明】

生成的序列为 78 31 4。最大不能被表示的金额是 89。

【样例  4 输入】

50 50000000 97

【样例 4 输出】

50215765

【数据范围】

对于 10%  的数据, n, m  ≤  100;

对于 30%  的数据, n  ≤  100, m ≤ 10000; 

对于 60%  的数据, 2  ≤ m  ≤ 10^7;

对于 80%  的数据, 2  ≤ m  ≤ 5 ⋅ 10^7;

对于 100%  的数据, 50  ≤ n ≤ 10^7, 2 ≤ m ≤ 10^8;

对于所有数据,均满足 n ≥ 50且 0 ≤ seed < 2^31 。

来源/分类