题目描述
有 $2n$ 个 bot,编号分别为 $1\sim 2n$,你想把他们分为两组,每组 $n$ 个 bot,分法如下:
- 所有 bot 按编号从小到大顺序抛一枚完全均匀(正反面朝上概率均为 $0.5$)的硬币。
- 如果硬币正面朝上就被分进 A 组,除非 A 组已经有 $n$ 个 bot(这时他被分进 B 组)。
- 如果硬币反面朝上就被分进 B 组,除非 B 组已经有 $n$ 个 bot(这时他被分进 A 组)。
有 $q$ 次相互独立的询问,每次询问给定 $k$ 个 bot 的编号 $b_1\sim b_k$,求这 $k$ 个 bot 被分进同一组的概率。答案对 $998244353$ 取模。
输入格式
第一行两个正整数 $n,q$。
接下来 $q$ 行,每行第一个正整数为 $k$,接下来 $k$ 个正整数 $b_1\sim b_k$。
输出格式
对每个询问输出一行一个非负整数,表示答案对 $998244353$ 取模的值。
样例
输入 1
2 6
2 1 2
2 1 3
2 1 4
2 2 3
2 2 4
2 3 4
输出 1
499122177
748683265
748683265
748683265
748683265
499122177
这里以第二组询问为例,要求出第一个人和第三个人处于同一组的概率。
四个人轮流抛硬币共有 16 种等概率的结果:
- 正正正正
- 正正正反
- 正正反正
- 正正反反
- 正反正正
- 正反正反
- 正反反正
- 正反反反
- 反正正正
- 反正正反
- 反正反正
- 反正反反
- 反反正正
- 反反正反
- 反反反正
- 反反反反
其中第 $5,6,11,12$ 种情况满足第一个人和第三个人处于同一组,概率为 $4/16=0.25$,对 $998244363$ 取模得到 $748683265$。
输入 2
3 5
3 2 3 5
2 2 4
2 5 6
3 1 4 6
2 2 5
输出 2
935854081
623902721
374341633
935854081
686292993
样例输入 / 输出 3
见下发文件中的 ex_flip3.in/ex_flip3.ans
,该样例满足子任务 2 的特殊性质。
样例输入 / 输出 4
见下发文件中的 ex_flip4.in/ex_flip4.ans
,该样例满足子任务 7 的特殊性质。
数据范围
本题捆绑测试。
对于所有数据,$2\le n\le 10^5,1\le q\le 10^5,1\le b_i\le 2n,b_i>b_{i-1},2\le k\le n,\sum k\le 2\times 10^5+100$。
- 子任务 1(9 分):$n\le 8,q\le 5$。
- 子任务 2(14 分):$n\le 10$。
- 子任务 3(7 分):$n\le 100,q=1$。
- 子任务 4(15 分):$q=1$。
- 子任务 5(6 分):$k=2$。
- 子任务 6(8 分):$b_k=2n$。
- 子任务 7(8 分):$\sum (b_k-b_1)\le 5\times 10^5$。
- 子任务 8(33 分):无特殊限制。