首页 > 试题广场 >

躲藏

[编程题]躲藏
  • 热度指数:1359 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
XHRlyb和她的小伙伴Cwbc在玩捉迷藏游戏。
Cwbc藏在多个不区分大小写的字符串中。
好奇的XHRlyb想知道,在每个字符串中Cwbc作为子序列分别出现了多少次。
由于Cwbc可能出现的次数过多,你只需要输出每个答案对2000120420010122取模后的结果。
聪明的你在仔细阅读题目后,一定可以顺利的解决这个问题!

输入描述:
输入数据有多行,每行有一个字符串。


输出描述:
输出数据应有多行,每行表示一个答案取模后的结果。
示例1

输入

Cwbc

输出

1

说明

Cwbc作为子序列仅出现了1次。
示例2

输入

acdcecfwgwhwibjbkblcmcnco

输出

81

说明

Cwbc作为子序列出现了34=81次。

备注:
每行字符串长度不超过2×105,字符串总长度不超过106
头像 kilomatutinal
发表于 2026-02-02 00:46:06
今天是dp喵,简单喵~想象一下,本喵在字符串里寻找“Cwbc”这四个字符组成的序列(不区分大小写哦~)。代码里用四个变量来跟踪本喵找到了多少种“半成品”序列:dp0:记录找到的 'c' 开头数量(这是第一步喵~)dp1:记录找到的 'cw' 组合数量(已经有点完整的雏形啦!)dp2:记录找到的 'c 展开全文
头像 小琢卷不动
发表于 2021-11-23 16:10:28
这道题需要格外注意一句话: 不区分大小写。 所以考虑设 dpi,0/1/2/3dp_{i,0/1/2/3}dpi,0/1/2/3​ 表示以 iii 结尾,最后一位恰好匹配到 cwbc 的第 0/1/2/30/1/2/30/1/2/3 个字符的方案数。 然后稍微压一下状态,写出状态转移方程:(代码 展开全文
头像 SWPU_22_张竞锴
发表于 2026-02-02 10:59:33
import sys MOD = 2000120420010122 for line in sys.stdin: a = line.strip().lower() ans = 0 c = 0 cw = 0 cwb = 0 for x in a: 展开全文
头像 Jakeap
发表于 2026-02-02 15:04:53
dp数组的含义:匹配到子串当前位置的子序列的个数。也就是说dp[2]意思是匹配到'b'这个字符的子序列个数是多少,匹配到b,那么前面一定是有cw的,所以当前dp[2]+=dp[1]状态转移方程为:dp[i]+=dp[i-1]但是注意若当前字符与前面有字符相同,也就是这里判断到c时dp[0]要继续自增 展开全文
头像 为芙宁娜献出心脏
发表于 2026-02-02 12:14:12
还是挺典的一个子序列动态规划的,就是用dp[i]表示以Cwbc中第i个位置结尾的子序列个数就好了 唯一要注意的点是这里不区分大小写 // BggBB wZPXsv:. UBgQGv // BgEQQ 展开全文
头像 quchen666
发表于 2026-02-02 13:27:21
#include <bits/stdc++.h> using namespace std; const int N=3e5+10; typedef long long ll; typedef unsigned long long ull; const ll mod = 200012042 展开全文
头像 chenlan114
发表于 2026-02-02 16:01:15
#include<bits/stdc++.h> using namespace std; using ll = long long; const ll N = 2e5 + 5, M = 2000120420010122; ll f[N]; int main() { ios::s 展开全文
头像 pandaC222
发表于 2026-02-02 16:17:18
#include<bits/stdc++.h> using namespace std; #define int long long const int INF = 0x3f3f3f3f3f3f3f3f; const int mod=2000120420010122; void solv 展开全文
头像 永恒学者
发表于 2026-02-02 17:46:52
//算法学习第四题,DP #include <bits/stdc++.h> using namespace std; //using ll=long long; const long long MOD = 2000120420010122; //int 最大只有 $2 \times 1 展开全文
头像 bing糖雪狸
发表于 2026-02-02 21:59:51
/* * @Author: tkzzzzzz6 * @Date: 2026-02-02 21:39:02 * @LastEditors: tkzzzzzz6 * @LastEditTime: 2026-02-02 21:55:31 */ #include<bits/stdc++.h 展开全文

问题信息

难度:
3条回答 142浏览

热门推荐

通过挑战的用户

查看代码
躲藏