「FAOI-R5」波特检测
题目背景
正在验证您是否是真人。这可能需要几秒钟时间。
题目描述
小 H 是一个 bot,他内置一个序列 $\{A_n\}$ 和一个长度为 $n$ 的 01 串 $H$。询问他一个区间 $[l,r]$,他可以给出一个**集合** $g(l,r)$:
- 设置序列 $\{B_n\}$,对于 $i=1,2,\ldots,n$,执行以下操作:
- 如果 $H_i=\tt{0}$,$B_i=A_i$(即小 H 不能修改 $A_i$ 的值);
- 如果 $H_i=\tt{1}$,可以任意选择一个非负整数 $v$,令 $B_i=v$(即小 H 可以任意修改 $A_i$ 的值,**修改后的值可以不在 $\boldsymbol{[0,2^k-1]}$ 范围内**)。
- $g(l,r)=\{B_l\operatorname{xor}B_{l+1},B_{l+1}\operatorname{xor}B_{l+2},\cdots,B_{r-1}\operatorname{xor}B_{r}\}$。
喵仔牛奶需要对小 H 进行若干次检测,每次选取 $[l,r],[L,R]$ 两个区间,满足 $r\le L$,并向小 H 询问得出 $g(l,r),g(L,R)$。若 $g(l,r)\cap g(L,R)\neq\varnothing$,则检测失败,小 H 的 bot 身份会被发现。
若小 H 存在一种策略可以回答所有可能的询问并不存在检测失败(也就是对于任意满足 $r\le L$ 区间 $[l,r],[L,R]$ 都不会检测失败),我们就称这个 01 串 $H$ 是「可用的」。
给定 $n,k$,序列 $\{A_n\}$ 的每一项都在 $[0,2^k-1]$ 中均匀随机选取。你需要求出「可用的」01 串 $H$ 的个数的期望值。答案对 $998244353$ 取模。
输入输出格式
输入格式
一行两个非负整数 $n,k$,表示序列长度与值域大小。
输出格式
一行一个非负整数,表示「可用的」01 串 $H$ 的个数的期望值对 $998244353$ 取模后的结果。
如果你不知道如何进行有理数取模:
- 令 $M=998244353$。可以证明,答案可以被表示为最简分数 $\frac{p}{q}$,其中 $p$ 和 $q$ 是正整数且 $q\not\equiv 0\pmod M$。你只需要输出一个非负整数 $x\in[0,M)$ 使得 $x\cdot q\equiv p\pmod M$。
- 如果你不知道如何找出所述的 $x$,可以参考 P2613。
输入输出样例
输入样例 #1
1 0
输出样例 #1
2
输入样例 #2
2 1
输出样例 #2
4
输入样例 #3
3 1
输出样例 #3
499122184
输入样例 #4
5 2
输出样例 #4
655097885
输入样例 #5
10 3
输出样例 #5
972670600
输入样例 #6
114 514
输出样例 #6
802524221
说明
### 样例 1 解释
唯一一种可能的情况是 $A=[0]$,此时 $H=\tt 0$ 和 $H=\tt 1$ 都是「可用的」,故答案为 $2$。
### 样例 2 解释
有以下 $4$ 种可能的情况:
- $A=[0,0]$。
- $A=[0,1]$。
- $A=[1,0]$。
- $A=[1,1]$。
在不修改的情况下,它们都能通过检测(对应的答案均为 $2^2=4$),故答案为 $2^2=4$。
### 样例 3 解释
有以下 $8$ 种可能的情况:
- $A=[0,0,0]$,$H$ 的个数为 $7$。
- $A=[0,0,1]$,$H$ 的个数为 $8$。
- $A=[0,1,0]$,$H$ 的个数为 $7$。
- $A=[0,1,1]$,$H$ 的个数为 $8$。
- $A=[1,0,0]$,$H$ 的个数为 $8$。
- $A=[1,0,1]$,$H$ 的个数为 $7$。
- $A=[1,1,0]$,$H$ 的个数为 $8$。
- $A=[1,1,1]$,$H$ 的个数为 $7$。
当 $A=[0,1,0]$ 时,$H=\tt{000}$ 不是「可用的」。当询问 $[1,2],[2,3]$ 时:
- 小 H 每次只能原封不动地保留 $A$。
- 当询问 $[1,2]$ 时,$g(1,2)=\{1\}$。
- 当询问 $[2,3]$ 时,$g(2,3)=\{1\}$。
- $g(1,2)\cap g(2,3)=\{1\}$,检测失败。
当 $A=[1,1,1]$ 时,$H=\tt{010}$ 是「可用的」。当询问 $[1,2],[2,3]$ 时:
- 小 H 可以任意修改 $A$ 的值,**并且每次询问时修改的值可以不一样**。
- 当询问 $[1,2]$ 时,小 H 令 $B=[1,2,1]$,$g(1,2)=\{3\}$。
- 当询问 $[2,3]$ 时,小 H 令 $B=[1,1,1]$,$g(2,3)=\{0\}$。
- $g(1,2)\cap g(2,3)=\varnothing$,检测成功。
故答案为 $(7\times 4+8\times 4)\times\dfrac{1}{8}=\dfrac{15}{2}$。
注意到 $2\times 499122184\equiv 15\pmod{998244353}$,答案即为 $499122184$。
### 样例 4 解释
答案为 $\dfrac{907}{32}\equiv655097885\pmod{998244353}$。
### 数据规模与约定
**本题采用捆绑测试。**
- Subtask 1(10 pts):$n\leq2$。
- Subtask 2(10 pts):$n\leq 6$,$k\leq 2$。
- Subtask 3(10 pts):$n\leq 50$,$k\leq6$。
- Subtask 4(10 pts):$n\leq 500$,$k\leq 20$。
- Subtask 5(20 pts):$n\leq 2\times10^3$。
- Subtask 6(20 pts):$n\leq 5\times10^4$。
- Subtask 7(20 pts):无特殊限制。
对于所有数据,$1\leq n\leq 10^6$,$0\leq k\leq 10^9$。