当前位置: 首页 > news >正文

躲藏【牛客tracker 每日一题】

躲藏

时间限制:1秒 空间限制:32M

知识点:动态规划

网页链接

牛客tracker

牛客tracker & 每日一题,完成每日打卡,即可获得牛币。获得相应数量的牛币,能在【牛币兑换中心】,换取相应奖品!助力每日有题做,丰盈牛币日益多!

题目描述

X H R l y b XHRlybXHRlyb和她的小伙伴C w b c CwbcCwbc在玩捉迷藏游戏。
C w b c CwbcCwbc藏在多个不区分大小写的字符串中。
好奇的X H R l y b XHRlybXHRlyb想知道,在每个字符串中C w b c CwbcCwbc作为子序列分别出现了多少次。
由于C w b c CwbcCwbc可能出现的次数过多,你只需要输出每个答案对2000120420010122取模后的结果。
聪明的你在仔细阅读题目后,一定可以顺利的解决这个问题!

输入描述:

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

输出描述:

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

示例1

输入:

Cwbc

输出:

1

说明:

C w b c CwbcCwbc作为子序列仅出现了1 11次。

示例2

输入:

acdcecfwgwhwibjbkblcmcnco

输出:

81

说明:

C w b c CwbcCwbc作为子序列出现了3 4 = 81 3^4=8134=81次。

备注:

每行字符串长度不超过2 × 10 5 2×10^52×105,字符串总长度不超过10 6 10^6106

解题思路

本题采用一维动态规划统计子序列出现次数,核心是用四个变量分别记录匹配到“ C ” ( a ) 、“ C w ” ( b ) 、“ C w b ” ( c ) 、“ C w b c ” ( d ) “C”(a)、“Cw”(b)、“Cwb”(c)、“Cwbc”(d)C(a)Cw(b)Cwb(c)Cwbc(d)的子序列数量;遍历字符串每个字符(不区分大小写),遇′ C ′ / ′ c ′ 'C'/'c'C/c时,d dd累加c cc(当前C CC可作为最后一位完成C w b c CwbcCwbc匹配)且a aa自增(新增以当前C CC开头的子序列),遇′ W ′ / ′ w ′ 'W'/'w'W/wb bb累加a aa(当前W WW匹配C CC后的w ww),遇′ B ′ / ′ b ′ 'B'/'b'B/bc cc累加b bb(当前B BB匹配C w CwCw后的b bb),所有操作对给定模数取模;遍历结束后d dd即为“ C w b c ” “Cwbc”Cwbc作为子序列的次数。该方法时间复杂度为O ( l e n ( s ) ) O(len(s))O(len(s)),无额外空间开销,完美适配单字符串长度≤ 2 × 10 5 ≤2×10^52×105、总长度≤ 10 6 ≤10^6106的规模,精准统计目标子序列的出现次数。

代码内容

#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;typedefunsignedlonglongull;typedefpair<ll,ll>pii;constll p=2000120420010122;constll N=1e6+10;intmain(){string s;while(cin>>s){ll a=0,b=0,c=0,d=0;for(auto&i:s){if(i=='C'||i=='c')d=(d+c)%p,a++;if(i=='W'||i=='w')b=(b+a)%p;if(i=='B'||i=='b')c=(c+b)%p;}cout<<d<<endl;}return0;}
http://www.jsqmd.com/news/334655/

相关文章:

  • 【金融项目实战】4_金融项目 _测试流程
  • <span class=“js_title_inner“>2亿新订单、年度总额近5亿:中国仓储机器人巨头在东欧疯狂掘金!</span>
  • 提示工程架构师入门指南:如何从零开始与AI模型高效协作?附3个实战案例
  • Docker 构建 Python FastAPI 镜像最佳实践
  • JS其他常用内置对象
  • 鹧鸪云:智控电站全链路,精管进度每一环
  • 中国知名的车膜品牌有哪些
  • 中国专业的车膜品牌哪家权威
  • 数字化时代的劳动力管理新范式:深度解析eRoad People+劳动力管理模块
  • Get请求和Post请求+Boss项目准备
  • 2025.10.16 - 2025.12.10
  • SSM毕设项目推荐-基于SSM的血液信息管理、库存预警、出入库记录基于SSM的医院血库管理系统的设计与实现【附源码+文档,调试定制服务】
  • 考试心得6
  • 数据即服务(DaaS)新选择:五度易链API平台的技术架构与接入实践
  • 本地部署和云端部署的优缺点
  • beeline -f
  • SSM毕设项目:基于SSM的医院血库管理系统的设计与实现(源码+文档,讲解、调试运行,定制等)
  • 【毕业设计】基于SSM的医院血库管理系统的设计与实现(源码+文档+远程调试,全bao定制等)
  • 点餐|基于java和小程序的家庭大厨家常菜点餐平台设计与实现(源码+数据库+文档)
  • 交通网络中的最短路径规划与可视化(Dijkstra)-大数据深度学习算法毕设毕业设计项目flask
  • LangGraph 入门:用图结构构建你的第一个多智能体工作流
  • MathCAD许可证配置教程
  • <span class=“js_title_inner“>AI 基础概念全景指南</span>
  • 微型导轨从基础到进阶的安装方式
  • 洛谷 P3383:线性筛素数 ← 欧拉筛
  • 建议收藏!大模型核心概念全面解析,程序员小白入门必备
  • 网络和Linux网络-14(IO多路转接)poll和epoll编程-服务器
  • 【强烈推荐】企业级大模型应用:EAG-RAG技术深度解析与实战指南
  • 家庭用电预测模型的设计(sklearn+dnn)-大数据深度学习算法毕设毕业设计项目flask
  • <span class=“js_title_inner“>马杜罗时代终结,全球AI算力的“能源账单”将如何重写?</span>