计数题

Luogu
IDLGP9151
Time2000ms
Memory512MB
DifficultyP7
动态规划 DP数学洛谷原创O2优化组合数学洛谷月赛
给定长度为 $N$ 的 $01$ 串 $S$,你可以做若干个操作,形如将长度为 $3$ 的子串变成它们的中位数(注意是变成一个数字),问可以得到多少个不同的串。 答案对 $998244353$ 取模。 ## Input 本题有多组数据。第一行输入数据组数 $T$。 对于每组数据,仅输入一个字符串 $S$ 表示给定的 $01$ 串。 ## Output 对每组数据输出一行一个整数,表示答案对 $998244353$ 取模的结果。 [samples] ## Background [Easy Counting Problem](https://atcoder.jp/contests/agc022/tasks/agc022_e) > 身のうさを思ひしらでややみなまし そむくならひのなき世なりせば ## Note **【样例解释】** 可以证明,$1001$ 仅能通过操作获得串 $10,01,1001$ ,因此样例第一组数据的答案为 $3$。 --- **【数据范围】** 对于 $100 \%$ 的数据,满足 $1\le N \le 5\times {10}^6$,$S_i\in\{0,1\}$,$1 \le T \le 5$。 | 子任务 | $N \le$ | 特殊性质 | 分数 | | - | - | - | - | | 1 | $10$ | | $5$ | | 2 | $50$ | | $10$ | | 3 | $300$ | | $10$ | | 4 | $2000$ | | $15$ | | 5 | | A | $5$ | | 6 | | B | $5$ | | 7 | ${10}^5$ | | $20$ | | 8 | | | $30$ | 特殊性质 A:保证 $S_i=0$。 特殊性质 B:保证 $S_{2k}=0$、$S_{2k+1}=1$。 **字符串下标的编号从 $1$ 开始。**
Samples
Input #1
4
1001
111000
101010
111000101010
Output #1
3
7
3
25
API Response (JSON)
{
  "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对每组数据输出一行一个整数,表示答...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments