3858: 随机重复(挖土机 CSP-J 模拟赛 ~ 第二场)
内存限制:512 MB
时间限制:10.000 S
评测方式:文本比较
命题人:
提交:5
解决:2
题目描述
33DAI 写了一个很菜的随机数生成器,输入了随机数种子 和个数 后,可以得到 个 之间的正整数。
#include <bits/stdc++.h>
using namespace std;
unsigned long long seed;
unsigned long long rnd() {
seed = seed * seed + seed + 30ull;
return seed;
}
int main() {
cin >> seed;
int n;
cin >> n;
for (int i = 1; i <= n; i++)
cout << rnd() << " ";
return 0;
}
比如输入 33 10
可以得到下面的输出:
Kitten 决定测试一下这个随机数生成器到底有多菜,于是指定了随机数种子 和随机数个数 ,让 33DAI 生成出来 个随机数。
紧接着给了他 个整数 ,让数数看看这 个整数中有多少个在那 个随机数中出现了。
输入
第一行为三个整数 。
第二行为空格隔开的 个整数 。
输出
一行为一个整数,即题目说的数量。
样例输入 复制
33 10 5
33 1764345026112 1153 1152 17740564155584332190
样例输出 复制
3
提示
数据规模与约定
对于 的数据,,,。
- 子任务 1(10 分):保证 Kitten 的 个随机数是使用 33DAI 的程序,输入 和 生成出来的。
- 子任务 2(20 分):保证 。
- 子任务 3(30 分):保证 。
- 子任务 4(40 分):没有特殊限制。