AT_npcapc_2024_g Many Common Segment Problems

题目描述

PCT 君出了一道如下的题目。 > **Common Segment** > > 给定 $N$ 个区间 $[L_1, R_1], [L_2, R_2], \dots, [L_N, R_N]$,其中 $[L, R]$ 表示所有满足 $L \leq x \leq R$ 的整数 $x$ 构成的区间。 > > 从这 $N$ 个区间中选出至少一个区间的方法有 $2^N-1$ 种,其中选出的所有区间的公共部分非空的方案数,模 $998244353$ 输出。 但 PCT 君不小心丢失了一部分区间的 $L_i, R_i$ 的值,这令他很困扰。请你帮他解决以下问题。 > **Many Common Segment Testcases** > > 给定 **Common Segment** 的一个测试用例,其中部分丢失的 $L_i, R_i$ 的值用 $-1$ 替代。 > > 其中,原本的测试用例满足 $1 \leq L_i \leq R_i \leq M\ (1 \leq i \leq N)$。 > > 对所有可能的原本测试用例,分别求出对应的 **Common Segment** 答案,最后将所有答案的总和模 $998244353$ 输出。

输入格式

输入从标准输入读取,格式如下: > $N$ $M$ $L_1$ $R_1$ $L_2$ $R_2$ $\vdots$ $L_N$ $R_N$

输出格式

输出答案。

说明/提示

### 部分分 本题包含多个部分分。 - 若你能解决 $L_i,R_i \geq 1$ 的数据集,将获得 $10$ 分。 - 若你能解决 $N, M \leq 2000$ 的数据集,将获得 $10$ 分。 ### 样例解释 1 全部可能的测试用例及其对应的 **Common Segment** 答案如下所示。 - $(L_i, R_i) = (1,1), (2,2), (2,3)$ 时,答案为 $4$ - $(L_i, R_i) = (1,2), (2,2), (2,3)$ 时,答案为 $7$ - $(L_i, R_i) = (1,3), (2,2), (2,3)$ 时,答案为 $7$ 因此,最终答案为 $4 + 7 + 7 = 18$。 ### 数据范围 - $1 \leq N, M \leq 10^5$ - $L_i = -1$ 或 $1 \leq L_i \leq M$ - $R_i = -1$ 或 $1 \leq R_i \leq M$ - 若 $L_i, R_i \geq 1$,则有 $L_i \leq R_i$。 由 ChatGPT 5 翻译