远端评测题 1000ms 256MiB

内存受限

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

说明

时间限制:2 Sec 内存限制:32 MB 输入文件memory.in 输出文件memory.out

请计算长度为 1000000110000001 的数列 aa中位数。这道题对大家来说太过简单,因此特意将内存限制设定为 32MB

补充说明:中位数指将数列按大小排序后,位于中间位置的数值。

输入格式

一个整数 seedseed,作为生成 aa 序列的种子。生成的算法为 XOR Shift 伪随机数生成算法,代码如下:

uint32_t x = 0, y = 1, z = 2, w = 3;
uint32_t generate() { 
    uint32_t t = (x^(x<<11));
    x = y;
    y = z;
    z = w;
    w = (w ^ (w >> 19)) ^ (t ^ (t >> 8)); 
    return w;
}

int main(void) {
    int64_t seed; cin >> seed; 
    x = seed;
    uint32_t a[10000001];
    for (int i = 0; i < 10000001; i++) {
        a[i] = generate();
    }
    for (int i = 0; i < 10000001; i++) {
        cout << a[i] << endl;
    }
    return 0;
}

其中,uint32_t 是 C++ 内置的数据类型,表示 32 位无符号整数,取值范围为 023210 \sim 2^{32}-1;int64_t 是 64 位整数。

提示:generate 函数产生的随机数会以 10000001 为一个循环,即第 10000002 到第 20000002 个数会和第 1 个到第 10000001 个数完全相同。

输出格式

一个整数,表示中位数。

样例

样例 1

1

2147058707

样例说明:生成的数列如下:2058205833411341132058205841984884198488419642741964271258721012587210839078483907844332056433205642127474212747413321413321、……

样例 2

100000

2148033584

数据范围

1seed1000001 \le seed \le 100000

2025年10月月赛-Div2普及

未参加
状态
已结束
规则
OI
题目
6
开始于
2025-10-19 15:00
结束于
2025-10-19 17:00
持续时间
2 小时
主持人
参赛人数
70