CF1728G Illumination
题目描述
考虑坐标轴上的一段区间 $[0, d]$。在该区间内有 $n$ 个灯笼和 $m$ 个兴趣点。
对于每个灯笼,你可以为其选择一个功率——一个在 $0$ 到 $d$ 之间(包含 $0$ 和 $d$)的整数。坐标为 $x$ 的灯笼可以照亮坐标为 $y$ 的兴趣点,当且仅当 $|x - y|$ 小于等于该灯笼的功率。
如果所有兴趣点都被至少一个灯笼照亮,则称为所有灯笼分配功率的一种方案是合法的。
你需要处理 $q$ 个询问。每个询问由一个整数 $f_i$ 表示。对于第 $i$ 个询问,你需要:
- 在坐标 $f_i$ 处添加一个灯笼;
- 计算所有灯笼分配功率的合法方案数,并输出其对 $998244353$ 取模的结果;
- 移除刚刚添加的灯笼。
输入格式
第一行包含三个整数 $d$、$n$ 和 $m$($4 \le d \le 3 \cdot 10^5$;$1 \le n \le 2 \cdot 10^5$;$1 \le m \le 16$),分别表示区间的长度、灯笼的数量和兴趣点的数量。
第二行包含 $n$ 个整数 $l_1, l_2, \dots, l_n$($1 \le l_i \le d - 1$),其中 $l_i$ 表示第 $i$ 个灯笼的坐标。
第三行包含 $m$ 个整数 $p_1, p_2, \dots, p_m$($1 \le p_i \le d - 1$),其中 $p_i$ 表示第 $i$ 个兴趣点的坐标。
第四行包含一个整数 $q$($1 \le q \le 5 \cdot 10^5$),表示询问的数量。
第五行包含 $q$ 个整数 $f_1, f_2, \dots, f_q$($1 \le f_i \le d - 1$),其中 $f_i$ 表示第 $i$ 个询问对应的灯笼坐标。
输入的额外限制:在处理每个询问的过程中,任何坐标上都不会有多个物体(即不会有两个或以上的灯笼在同一坐标、两个或以上的兴趣点在同一坐标,或者某个坐标同时有灯笼和兴趣点)。
输出格式
对于每个询问,输出一个整数,表示答案对 $998244353$ 取模的结果。
说明/提示
由 ChatGPT 4.1 翻译