Home > Web Front-end > HTML Tutorial > Codeforces Round #254 (Div. 2)D(Estimated)_html/css_WEB-ITnose

Codeforces Round #254 (Div. 2)D(Estimated)_html/css_WEB-ITnose

WBOY
Release: 2016-06-24 11:57:43
Original
1094 people have browsed it

D. DZY Loves FFT

time limit per test

1 second

memory limit per test

256 megabytes

input

standard input

output

standard output

DZY loves Fast Fourier Transformation, and he enjoys using it.

Fast Fourier Transformation is an algorithm used to calculate convolution. Specifically, if a, b and c are sequences with length n, which are indexed from 0 to n?-?1, and

We can calculate c fast using Fast Fourier Transformation.

DZY made a little change on this formula. Now

To make things easier, a is a permutation of integers from 1 to n, and b is a sequence only containing 0 and 1. Given a and b, DZY needs your help to calculate c.

Because he is naughty, DZY provides a special way to get a and b. What you need is only three integers n, d, x. After getting them, use the code below to generate a and b.

//x is 64-bit variable;function getNextX() {    x = (x * 37 + 10007) % 1000000007;    return x;}function initAB() {    for(i = 0; i < n; i = i + 1){        a[i] = i + 1;    }    for(i = 0; i < n; i = i + 1){        swap(a[i], a[getNextX() % (i + 1)]);    }    for(i = 0; i < n; i = i + 1){        if (i < d)            b[i] = 1;        else            b[i] = 0;    }    for(i = 0; i < n; i = i + 1){        swap(b[i], b[getNextX() % (i + 1)]);    }}
Copy after login

Operation x % y denotes remainder after division x by y. Function swap(x, y) swaps two values x and y.

Input

The only line of input contains three space-separated integers n,?d,?x (1?≤?d?≤?n?≤?100000; 0?≤?x?≤?1000000006). Because DZY is naughty, x can't be equal to 27777500.

Output

Output n lines, the i-th line should contain an integer ci?-?1.

Sample test(s)

input

3 1 1
Copy after login

output

132
Copy after login

input

5 4 2
Copy after login

output

22455
Copy after login

input

5 4 3
Copy after login

output

55554
Copy after login

题意:RT


思路:因为b序列一定只含0或1,那么含0的是没有意义的


            直接for就好了,然后用一个数组is[]记录前多少个b序列为1的位置


            每次要找最大值的时候,如果is[]数组的个数小于一个常数,就枚举is数组


            否则直接从大到小枚举最大值就好了


Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template