GuilinDev

Lc1359

05 August 2008

1359 Count All Valid Pickup and Delivery Options

给 n 笔订单,每笔订单都需要快递服务。

统计所有有效的 收件/配送 序列的数目,确保第 i 个物品的配送服务 delivery(i) 总是在其收件服务 pickup(i) 之后。

组合数学

1
2
3
4
5
6
7
8
9
10
11
12
int MOD = 1000000007;

int countOrders(int N) {
    long P = 1;
    for (int n = 2; n <= N; n++) {
        long a = 2 * (n - 1) + 1;
        long b = a * (a - 1) / 2 + a;
        P = (b * P) % MOD;
    }

    return P;
}