AcWing 1052. 设计密码
//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. 设计密码的更多相关文章
- UX设计秘诀之注册表单设计,细节决定成败
以下内容由摹客团队翻译整理,仅供学习交流,摹客iDoc是支持智能标注和切图的产品协作设计神器. 说实话,现实生活中,又有多少人会真正喜欢填写表格?显然,并不多.因为填写表单这样的网页或App服务,并非 ...
- 2.SDL规范文档
01.安全设计Checklist 输入验证 校验跨信任边界传递的不可信数据(策略检查数据合法性,含白名单机制等)格式化字符串时,依然要检验用户输入的合法性,避免可造成系统信息泄露或者拒绝服务 禁止向J ...
- demo_2
业务层 package com.demo.service; import com.demo.pojo.User; public interface IUserService { /** * 用户登录 ...
- 涂抹mysql笔记-mysql数据库文件结构
<>初始化选项文件:默认位置:windows平台 windir\my.ini windir可通过echo $WINDIR$查看 系统盘的根目录即:c:\my.ini installdir\ ...
- 百度-淘宝-360搜索引擎搜索API
百度(baidu) Api地址:http://suggestion.baidu.com/su?wd=设计&p=3&cb=window.bdsug.sug window.bdsug.su ...
- 20155325 信息安全技术 实验二 Windows口令破解
内容一览 实验结果 遇到的问题 思考题 详细步骤与解析(为了使存做笔记资料而做) 实验结果 字典破解 暴力破解 -不同密码强度的破解时间比较 用户名 密码 破解方式 破解时间 TEST (年月日) 字 ...
- powerpoint教程资料,PPT的
Powerpoint,是微软公司设计的演示文稿软件,利用Powerpoint不仅可以创建演示文稿,还可以在互联网上召开面对面会议.远程会议或在网上给观众展示演示文稿,掌握利用PowerPoint是一项 ...
- win10文件共享的实现
1)启动网络发现 打开网络共享中心->更改高级共享设置->修改如下 2)如果需要其他客户端无密码访问 修改如下: 3)如果打算使用Guest访问 用户帐户->管理帐户 ...
- CentOS(一) 最小化安装
/etc/sysconfig/selinux 关闭selinux /etc/sysconfig/network-scripts/网卡 设置onboot=yes service network re ...
随机推荐
- Windows2008R2搭建共享存储服务器
说明: 为了方便公司个部门软件.项目.文档等资料的归档和保存,实现公司内部资料共享及重要资料备份,防止因个人计算机系统故障或硬件故障导致数据丢失而造成数据无法恢复的损失,特建立共享服务器 1.在共享服 ...
- js 常用总结
1.截取字符串 var a="/s/d"; console.log(a.substr(0,a.indexOf("/",1))) // 得到/s 2. // ...
- Java连载89-SorteSet、Comparable接口
一. SortedSet集合直接举例 package com.bjpowernode.java_learning; import java.util.*; /** * java.util.Set * ...
- C# NewtonJson Serialize and deserialize
using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using Sys ...
- spring cloud微服务快速教程之(五) ZUUL API网关中心
0-前言 我们一个个微服务构建好了,外部的应用如何来访问内部各种各样的微服务呢?在微服务架构中,后端服务往往不直接开放给调用端,而是通过一个API网关根据请求的url,路由到相应的服务.当添加API网 ...
- Charles抓包工具的破解以及使用
一.破解 官网下载Charles 下载Charles.jar ,然后按照后在Charles→lib中替换掉Charles.jar 链接:https://pan.baidu.com/s/1XZ-aZI5 ...
- qt creator源码全方面分析(2-2)
目录 Common Extension Tasks Common Extension Tasks 本节总结了可用于将UI组件添加到Qt Creator的API函数. 任务 详细 API 添加菜单或菜单 ...
- 创建react项目,用typescript语法
create-react-app 文档 typescript 单元测试 官网测试相关文档
- Python学习笔记一:变量、函数
变量.函数是Python语言的最基本单元,下面是我作为初学者的当前理解,随着学习的深入今后会做刷新. 变量:表示操作对象是谁. 变量的方法:表示能做什么事情. 如何设计变量:先分析需要解决的问题,基于 ...
- Email-发送邮件
Email 发送邮件 import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIME ...