//f[i][j]表示前 i 个字符与字符串匹配长度为 j 时的方案数
#include <cstring>
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
const int N=,mod=1e9+;;
int ne[N];//KMP中的next数组
char str[N];//子串
int f[N][N];//表示对于枚举到的那个点的某个状态的解
int main() {
int n,m;
cin >> n >> str+;
m=strlen(str+);
for(int i=,j=; i<=m; i++) {
while(j&&str[i]!=str[j+])j=ne[j];
if(str[i]==str[j+])j++;
ne[i]=j;
}
f[][]=;
for(int i=; i<n; i++) { //枚举当前密码的长度
for(int j=; j<m; j++) { //枚举子串中的位置,也就是当前密码,与子串匹配的长度
for(char k='a'; k<='z'; k++) { //枚举i处的字符
int u=j;//k要和 str[u+1]匹配,所以从0开始
while(u&&k!=str[u+]) u=ne[u];
if(str[u+]==k)u++;
if(u<m) { //说明没有出现过子串
f[i+][u]=(f[i+][u]+f[i][j])%mod;//这里最后的状态的f[i+1][u],所以更新的是这个值
}
}
}
}
int res=;
for(int i=; i<m; i++)res = (res + f[n][i]) % mod; //把所有的情况加起来
cout << res;
}

AcWing 1052. 设计密码的更多相关文章

  1. UX设计秘诀之注册表单设计,细节决定成败

    以下内容由摹客团队翻译整理,仅供学习交流,摹客iDoc是支持智能标注和切图的产品协作设计神器. 说实话,现实生活中,又有多少人会真正喜欢填写表格?显然,并不多.因为填写表单这样的网页或App服务,并非 ...

  2. 2.SDL规范文档

    01.安全设计Checklist 输入验证 校验跨信任边界传递的不可信数据(策略检查数据合法性,含白名单机制等)格式化字符串时,依然要检验用户输入的合法性,避免可造成系统信息泄露或者拒绝服务 禁止向J ...

  3. demo_2

    业务层 package com.demo.service; import com.demo.pojo.User; public interface IUserService { /** * 用户登录 ...

  4. 涂抹mysql笔记-mysql数据库文件结构

    <>初始化选项文件:默认位置:windows平台 windir\my.ini windir可通过echo $WINDIR$查看 系统盘的根目录即:c:\my.ini installdir\ ...

  5. 百度-淘宝-360搜索引擎搜索API

    百度(baidu) Api地址:http://suggestion.baidu.com/su?wd=设计&p=3&cb=window.bdsug.sug window.bdsug.su ...

  6. 20155325 信息安全技术 实验二 Windows口令破解

    内容一览 实验结果 遇到的问题 思考题 详细步骤与解析(为了使存做笔记资料而做) 实验结果 字典破解 暴力破解 -不同密码强度的破解时间比较 用户名 密码 破解方式 破解时间 TEST (年月日) 字 ...

  7. powerpoint教程资料,PPT的

    Powerpoint,是微软公司设计的演示文稿软件,利用Powerpoint不仅可以创建演示文稿,还可以在互联网上召开面对面会议.远程会议或在网上给观众展示演示文稿,掌握利用PowerPoint是一项 ...

  8. win10文件共享的实现

    1)启动网络发现 打开网络共享中心->更改高级共享设置->修改如下 2)如果需要其他客户端无密码访问        修改如下: 3)如果打算使用Guest访问  用户帐户->管理帐户 ...

  9. CentOS(一) 最小化安装

    /etc/sysconfig/selinux 关闭selinux /etc/sysconfig/network-scripts/网卡   设置onboot=yes service network re ...

随机推荐

  1. JS从键盘输入当月利润,求应发放奖金总数

    题目:企业发放的奖金根据利润提成.利润(I)低于或等于10万元时,奖金可提10%:利润高 于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提 成7.5%:20万到4 ...

  2. toj 3019 Hidden Password (最小表示法)

    Hidden Password 时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte总提交: 53 测试通过: 19 描述 Some time the progr ...

  3. 表关联使用INNER JOIN实现更新功能

    准备一些数据,创建2张表,表1为学生表: CREATE TABLE [dbo].[Student] ( [SNO] INT NOT NULL PRIMARY KEY, ) NOT NULL, ,) N ...

  4. PMP--2.2 效益管理计划

    一.文件背景概述 ​​​1. 所需文件/数据 制定效益管理计划需要使用商业论证和需求评估中的数据和信息,例如,成本效益分析数据. 成本效益分析数据是在商业论证和需求评估中得到的,在成本效益分析中已经把 ...

  5. 小白的linux笔记5:关于权限那些事

    在设置smb时发现,目录的权限是个影响访问的大问题,还是得研究清楚. 关于文件权限 查看当前目录下文件和文件夹的权限状态:ls -l drwxrwxr--.  4 root root    4096 ...

  6. 原创: idea 的maven 方式配置 开发javaWeb(idea+tomcat +maven

    通过idea 编辑器来配置基于maven创建站点,在tomcat上配置 在采用idea 配置之前,首先要确保maven和 tomcat 正确运行. maven 配置链接 tomcat 配置链接 实际你 ...

  7. jsp的九大内置对象+四大作用域

    1.request是httpServletRequest的对象,代表发送的请求信息 2.response是httpServletResponse的对象,代表响应请求返回的信息 3.session会话是 ...

  8. css3基本选择器+属性选择器+动态伪类+UI状态伪类+结构类

    后代选择器 祖先元素 后代元素{ } 子元素选择器(直接子元素选择器) 父元素>子元素{ } 兄弟选择器 元素+兄弟元素(紧邻该元素之后的下一个兄弟元素) 所有兄弟元素选择器 元素~兄弟元素(该 ...

  9. 一种使用SOC精确控制脉冲的方法

    在emfi测试中需要精确的控制脉冲时间.控制器产生的脉冲信号会经过控压的MOS管,这些组件会造成很严重的延时,但是尽管如此,控制系统的高精度也是必须的,因为控制系统的误差会逐级下延,引起更大的误差. ...

  10. python 学习笔记之手把手讲解如何使用原生的 urllib 发送网络请求

    urllib.urlopen(url[,data[,proxies]]) : https://docs.python.org/2/library/urllib.html python 中默认自带的网络 ...