[日常训练]三视图(组合计数+容斥)
Description 给定两个长度为 \(n\) 的数组 \(a,b\) 。 要求给一个 \(n×n\) 的矩阵的每个位置填上一个非负整数,使得第 \(i\) 行的最大值为 \(a_i\) ,第 \(j\) 列的最大值为 \(b_j\) 。 求方案数对 \(998244353\) 取模的结果。 \(1\leq n\leq 10^5\) , \(1\leq a,b\leq 10^9\) 。 Solution 显然可以把 \(a,b\) 分别降序排序,不影响结果。 记 \(c_{i,j}=min(a_i,b_j)\) 。考虑将 \(c_{i,j}\) 相同的位置放在一起处理。 显然 \(c_{i,j}\) 相同的位置会形成一个 \(\lceil\) 反 \(L\) 形 \(\rfloor\) 。 具体地,将 \(a,b\) 降序排序后,若 \(a_{x_1}\) ~ \(a_{x_2}\) 和 \(b_{y_1}\) ~ \(b_{y_2}\) 都是 \(s\) ,则所有满足以下条件的 \(i,j\) 都有 \(c_{i,j}=s\) : \(1\leq i\leq x_2\) 且 \(1\leq j\leq y_2\) \(x_1\leq i\) 或 \(y_1\leq j\) 。 那么现在这个 \(\lceil\) 反 \(L\) 形 \(\rfloor\) 的填数要满足以下条件