Logo 邂逅编程之美

UOJ

时间限制:1 s 空间限制:512 MB
统计

【题目背景】

“不过尔辈是否有曾祈望,在那位强大神明于梦境与意志中心调谐之时,甚至处于无瑕境界、位列无人能及之巅峰之上时,将其力克?吾等不看好!”

【题目描述】

给定正整数 $n,m$、非负整数 $k$ 和质数 $p$。令 $L_{n,m}$ 为从 $(0,0)$ 到 $(n,m)$ 的所有简单格路构成的集合。对于 $\forall l1,l2 \in L_{n,m}$,称有序对 $(l1,l2)$ 是好的,当且仅当它们除去起点和终点外恰好有 $k$ 个交点。求好的有序对的数量,答案对 $p$ 取模。

【输入格式】

从文件 pantheon.in 中读入数据。

一行四个非负整数,分别表示 $n,m,k,p$。

【输出格式】

输出到文件 pantheon.out 中。

一行一个非负整数,表示好的有序对的数量对 $p$ 取模后的值。

【样例 $1$ 输入】

2 1 1 998244353

【样例 $1$ 输出】

4

【样例 $1$ 解释】

好的有序对有以下四个:

  1. $l1 = ((0,0),(1,0),(2,0),(2,1)),l2 = ((0,0),(1,0),(1,1),(2,1))$;
  2. $l1 = ((0,0),(1,0),(1,1),(2,1)),l2 = ((0,0),(1,0),(2,0),(2,1))$;
  3. $l1 = ((0,0),(1,0),(1,1),(2,1)),l2 = ((0,0),(0,1),(1,1),(2,1))$;
  4. $l1 = ((0,0),(0,1),(1,1),(2,1)),l2 = ((0,0),(1,0),(1,1),(2,1))$。

【样例 $2$ 输入】

5 4 3 998244353

【样例 $2$ 输出】

3080

【样例 $3$ 输入】

998 244 353 998244353

【样例 $3$ 输出】

237856329

【样例 $4$ 输入】

114514 1919810 1235467 998244353

【样例 $4$ 输出】

624658958

【数据范围】

对于所有测试点:$1 \le n,m \le 2 \times 10^6,0 \le k \le n+m-1,p \in [9 \times 10^8,10^9]$

大样例