05 August 2008
给 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;
}