{"problem":{"name":"计数题","description":{"content":"给定长度为 $N$ 的 $01$ 串 $S$，你可以做若干个操作，形如将长度为 $3$ 的子串变成它们的中位数（注意是变成一个数字），问可以得到多少个不同的串。 答案对 $998244353$ 取模。","description_type":"Markdown"},"platform":"Luogu","limit":{"time_limit":2000,"memory_limit":524288},"difficulty":{"LuoguStyle":"P7"},"is_remote":true,"is_sync":true,"sync_url":null,"sign":"LGP9151"},"statements":[{"statement_type":"Markdown","content":"给定长度为 $N$ 的 $01$ 串 $S$，你可以做若干个操作，形如将长度为 $3$ 的子串变成它们的中位数（注意是变成一个数字），问可以得到多少个不同的串。\n\n答案对 $998244353$ 取模。\n\n## Input\n\n本题有多组数据。第一行输入数据组数 $T$。\n\n对于每组数据，仅输入一个字符串 $S$ 表示给定的 $01$ 串。\n\n## Output\n\n对每组数据输出一行一个整数，表示答案对 $998244353$ 取模的结果。\n\n[samples]\n\n## Background\n\n[Easy Counting Problem](https://atcoder.jp/contests/agc022/tasks/agc022_e)\n\n> 身のうさを思ひしらでややみなまし そむくならひのなき世なりせば\n\n## Note\n\n**【样例解释】**\n\n可以证明，$1001$ 仅能通过操作获得串 $10,01,1001$ ，因此样例第一组数据的答案为 $3$。\n\n---\n\n**【数据范围】**\n\n对于 $100 \\%$ 的数据，满足 $1\\le N \\le 5\\times {10}^6$，$S_i\\in\\{0,1\\}$，$1 \\le T \\le 5$。\n\n| 子任务 | $N \\le$ | 特殊性质 | 分数 |\n| - | - | - | - |\n| 1 | $10$ | | $5$ |\n| 2 | $50$ | | $10$ |\n| 3 | $300$ | | $10$ |\n| 4 | $2000$ | | $15$ |\n| 5 | | A | $5$ |\n| 6 | | B | $5$ |\n| 7 | ${10}^5$ | | $20$ |\n| 8 | | | $30$ |\n\n特殊性质 A：保证 $S_i=0$。\n\n特殊性质 B：保证 $S_{2k}=0$、$S_{2k+1}=1$。\n\n**字符串下标的编号从 $1$ 开始。**","is_translate":false,"language":"English"}],"meta":{"iden":"LGP9151","tags":["动态规划 DP","数学","洛谷原创","O2优化","组合数学","洛谷月赛"],"sample_group":[["4\n1001\n111000\n101010\n111000101010\n","3\n7\n3\n25\n"]],"created_at":"2026-03-03 11:09:25"}}