[Offer收割]编程练习赛25 register

Ended

Participants:399

Verdict:Accepted
Score:100 / 100
Submitted:2017-09-03 14:04:44

Lang:G++

Edit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
using namespace std;
static const int maxn = 300 + 10;
static const int mod = 1000000007;
int n, k;
long long ctl[maxn], f[maxn][maxn];
long long qp(long long a, long long b)
{
    long long p = 1, q = a;
    while (b)
    {
        if (b & 1)
            p = p * q % mod;
        q = q * q % mod;
        b >>= 1;
    }
    return p;
}
int main()
{
    scanf("%d %d", &n, &k);
    ctl[0] = ctl[1] = 1;
    for (int i = 2; i <= n; i++)
        ctl[i] = ctl[i - 1] * (4 * i - 2) % mod * qp(i + 1, mod - 2) % mod;
    for (int i = 0; i <= n; i++)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX