题目背景

只要客人有意向,不论身在何处,都能上门服务。我是自动手记人偶服务——薇尔莉特·伊芙加登。

题目描述

薇尔莉特的打字机用了太久,按键已经开始老化了,因此有时候按键会没有反应。而薇尔莉特总是盲打,因此按键没反应她也不会注意到。一天,她用这台打字机继续完成一封还没写完的信。

现在告诉你这封信已经写好的部分以及薇尔莉特想进行的操作,薇尔莉特想进行的操作有两种:

  1. 在信的末尾输入一个大写字母
  2. 进行一次退格

退格用小写字母 \mathrm{u}u 表示,即删除当前信中的最后一个字符,当然,在信为空时退格没有任何作用。

薇尔莉特会按顺序按下她想按的按键,而每次薇尔莉特按下一个键(输入一个大写字母或进行一次退格),都有可能没有反应(即这次操作无效)。请问,最后打出来的信有多少种可能呢?(空信也算信)

当然薇尔莉特只想知道可能数对 0x125E591(十六进制) 取模的结果。

输入输出格式

输入格式:

第一行两个正整数 n,\ mn, m 分别表示已经写好的信的长度和薇尔莉特想进行的操作数(字符个数+退格个数)。

第二行一个长度为 nn 的字符串表示已经写好的信,保证该串中的每个字符都为大写字母。

第三行一个长度为 mm 的字符串表示薇尔莉特想进行的操作,保证该串中的每个字符都为大写字母或 \mathrm{u}u。

输出格式:

一个整数表示答案对 0x125E591 取模的结果。

输入输出样例

输入样例#1: 复制

2 4
AB
AuAB

输出样例#1: 复制

9

输入样例#2: 复制

10 5
AABBAACBAC
ABAAC

输出样例#2: 复制

20

输入样例#3: 复制

1 3
U
uUu

输出样例#3: 复制

3

说明

1\le n,\ m\le 5\times 10^61≤n, m≤5×106

样例解释

样例一:可能的 99 种信为:A,AA,AB,AAB,ABA,ABB,ABAA,ABAB,ABAAB

样例二:太多了,略

样例三:可能的 33 种信为:,U,UU

这题的模数为什么这么奇怪应该不用我解释了

注:在本文中序列加法定义为拼接两个序列成一个序列。如:\{A,B\}+\{C\}=\{A,B,C\}{A,B}+{C}={A,B,C}

思路

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<algorithm>
 5
 6 using namespace std;
 7
 8 const int maxn=1e7+10;
 9 const int mod=0x125E591;
10
11 char s[maxn],t[maxn];
12 int n,m,list[300],pre[maxn],pos,cnt,dp[maxn],ans;
13 int DP(char x)
14 {
15     if(list[x])
16     {
17         return mod-dp[pre[list[x]]];
18     }
19     else
20     return 1;
21 }
22 int tot=0;
23
24 int main()
25 {
26     memset(dp,0,sizeof(dp));
27     int i;
28     cin>>n>>m;
29     scanf("%s%s",s,t);
30     for (i=0;i<m;++i)
31     {
32         if(t[i]=='u')
33         {
34             tot++;
35         }
36     }
37     //cout<<cnt<<endl<<tot<<endl;
38     for (i=m-1;i>=0;--i)
39     {
40         if (t[i]!='u')
41         {
42             pre[i]=pos;
43             dp[i]=(2*dp[pos]+DP(t[i]))%mod;
44             pos=list[t[i]]=i;
45         }
46         else
47         {
48             if (n-tot>=0)
49             {
50                 ans=(ans+dp[pos]+DP(s[n-tot]))%mod;
51             }
52             --tot;
53         }
54     }
55     ans=(ans+dp[pos]+1)%mod;
56     cout<<ans<<endl;
57     return 0;
58 }

转载于:https://www.cnblogs.com/2529102757ab/p/10913839.html

P4965 薇尔莉特的打字机相关推荐

  1. 洛谷4965 薇尔莉特的打字机(Trie,DP)

    神仙题. 考虑在一棵 Trie 上进行染色,将可能出现的串的末尾染成黑色.答案就是黑点的个数.一开始只有 \(A\) 的末尾点是黑色. 当出现一个字符(不是退格)\(c\) 时,就要将每个黑点的 \( ...

  2. Stable Diffusion:使用Lora用二十张图片训了一个简易版薇尔莉特头像生成器(不作商用,纯纯个人兴趣,狗头保命)

    目录 一.系统环境 二.数据准备及预处理 三.使用Stable Diffusion获取图像信息 四.安装训练图形化界面 五.参数设置及训练过程 六. 效果测试 七.常见报错处理 一.系统环境 同上一篇 ...

  3. CSS和HTML做的二次元薇尔莉特(伪),新手上路,请多关照!!!!

    想来想去还是在CSDN上写了第一个博客!!! 请指教!!!! 这是在我做好的效果: 在CSBN用不来上传视频的我 由于我喜欢薇尔莉特,再加上血了css和html,于是做了个这玩意!! 新手上路,请多关 ...

  4. Android图灵聊天机器人-薇尔莉特

    智能聊天机器人-图灵机器人项目说明 文章目录 智能聊天机器人-图灵机器人项目说明 1.项目介绍 2.项目用到的技术 3.项目的开发环境 4.开发步骤 1.首先编写主界面(activity_main.x ...

  5. luogu[U103720]薇尔莉特 题解

    题面点这里 概括一下题目,就是维护矩阵or,要求最后整个矩阵的和,异或和 考虑对需要操作的值valvalval进行二进制拆分,由于or对于一个二进制位上的操作是永久性的,那我们对每一位进行二维差分,最 ...

  6. 周赛-薇尔莉特的委托-并查集应用

    题目链接 思路: 分别对所有路建立前缀并查集和后缀并查集,破坏L到R的路时,只需合并L-1,和R+1的集合. Code: #include <bits/stdc++.h> #define ...

  7. python 小案例

    1.生成随机验证码 介绍:验证码是由数字和字母组成的 import random from PIL import Image, ImageDraw, ImageFont, ImageFilter (1 ...

  8. HTML入门学习-含代码和配套资料

      前段时间学习了一下HTML和简单的网页制作,非常有意思,这里把笔记和代码梳理一下.无论是否看过配套视频的,都比较容易理解,供大家参考学习,文章末尾附上可以下载运行的代码,有兴趣的小伙伴请自行下载运 ...

  9. 心理测量?预知犯罪?AI可以减少京都之殇吗?

    全文共5213字,预计学习时长9分钟 图源:齐鲁网 一场火,两行泪.当地时间7月18日上午约10点30分,日本知名动画制作公司京都动画遭人纵火.事发时,工作室内共有74人在工作.截止目前,大火已造成3 ...

最新文章

  1. python爬虫工程师-Python-爬虫工程师-面试总结
  2. 四旋翼飞行器旋转矩阵公式推导!
  3. 【转】 vi常用操作
  4. 安装不文件不完全_冬日不偷懒 跑步机不完全使用指南
  5. ySQL挑战搭建一个简易的成绩管理系统的数据库
  6. Win7下的内置FTP组件的设置详解
  7. Eclipse里做JBPM工作流gpd.xml中文乱码问题解决
  8. sql注入之——sql注入防御方法
  9. win与安卓同步剪切板 快传照片
  10. 树莓派3B+安装官方原版系统
  11. 大型网站架设,LMP+Nginx负载均衡+Keepalived热备+Ceph存储集群架构+Web动静分离架构
  12. 如何修改网易邮箱大师电脑端的消息提示音?超简单
  13. 取石子问题--威佐夫博弈(Wythoff‘s game)
  14. 武汉光谷国际人工智能产业论坛之学习
  15. 鸿蒙os和vivo新系统,跳过鸿蒙系统后,中兴给出新选择,魅族和vivo却坐不住了...
  16. 录用了一篇 Omega
  17. 回滚机制有多少种?它们的实现原理是什么?这些你确定都知道?
  18. 阿里云对象存储OSS标准型(LRS)存储包详解
  19. where条件中有权限校验的自定义函数优化方法
  20. Streambox Ripper的问题

热门文章

  1. python之turtle风轮绘制
  2. STC8H_硬件IIC
  3. php怎么字符串转成json对象_php中json字符串转换为对象?
  4. DRM系列(14)之writeback_job分析
  5. RPC——RPC协议介绍及原理详解
  6. php 电话中转 保护用户隐私,打车APP的隐私保护通话是如何保护用户号码隐私的...
  7. “gjw” is of a model that is not supported by this version of Xcode. Please use a different device.
  8. AVFoundation 播放器实例
  9. extjs6.0 动态加载_Extjs入门之动态加载树代码
  10. 微博VS知乎:争夺大V是场隐形的战争