随机重复
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
王老师 写了一个很菜的随机数生成器,输入了随机数种子 和个数 后,可以得到 个 之间的正整数。
#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
可以得到下面的输出:
1152 1328286 1764345026112 6861985357762111070 1901262918123106560 7641831279628562718 7446905973427220672 5420652848451272926 7399983410558501248 17740564155584332190
Kitten 决定测试一下这个随机数生成器到底有多菜,于是指定了随机数种子 和随机数个数 ,让 王老师 生成出来 个随机数。
紧接着给了他 个整数 ,让数数看看这 个整数中有多少个在那 个随机数中出现了。
输入格式
第一行为三个整数 。
第二行为空格隔开的 个整数 。
输出格式
一行为一个整数,即题目说的数量。
33 10 5
33 1764345026112 1153 1152 17740564155584332190
3
样例 1 解释
生成的 个随机数就是题目描述中的那些。下面 []
框住的三个整数都出现了。
33 [1764345026112] 1153 [1152] [17740564155584332190]
33 10 20
1152 1328286 1764345026112 6861985357762111070 1901262918123106560 7641831279628562718 7446905973427220672 5420652848451272926 7399983410558501248 17740564155584332190 1152 1328286 1764345026112 6861985357762111070 1901262918123106560 7641831279628562718 7446905973427220672 5420652848451272926 7399983410558501248 17740564155584332190
20
样例 2 解释
Kitten 可能会给重复的整数,需要重复计算。
33 5 2
1152 1328286
2
33 5 10
1152 1328286 1764345026112 6861985357762111070 1901262918123106560 7641831279628562718 7446905973427220672 5420652848451272926 7399983410558501248 17740564155584332190
5
样例 5
样例 6
数据规模与约定
对于 的数据,,,。
- 子任务 1(10 分):保证 Kitten 的 个随机数是使用 王老师 的程序,输入 和 生成出来的。
- 子任务 2(20 分):保证 。
- 子任务 3(30 分):保证 。
- 子任务 4(40 分):没有特殊限制。
友爸信奥-2024CSPJ组复赛-十连测-第五测
- 状态
- 已结束
- 规则
- IOI(严格)
- 题目
- 4
- 开始于
- 2024-10-5 9:00
- 结束于
- 2025-2-28 10:00
- 持续时间
- 3505 小时
- 主持人
- 参赛人数
- 43