题目:https://leetcode-cn.com/contest/biweekly-contest-20/problems/count-all-valid-pickup-and-delivery-options/
题意:给你 n 笔订单,每笔订单都需要快递服务。
请你统计所有有效的 收件/配送 序列的数目,确保第 i 个物品的配送服务 delivery(i) 总是在其收件服务 pickup(i) 之后。
由于答案可能很大,请返回答案对 10^9 + 7 取余的结果
class Solution {
public:
int countOrders(int n) {
/*
*从第一对括号,推到第n对括号
*插入有2种,当前有i对,则有
*x=2*i+1个空隙,可以插入C(x,2)
*再加上插入同一个位置,x种
*/
this->n = n;
ans = 1;
mod = 1000000007;
for(int i = 1,x;i < n;i++) {
x = i*2+1;
x = x*(x-1)/2;
x += i*2+1;
ans = ans*x%mod;
}
return ans;
}
private:
int n;
long long ans;
int mod;
};