E -- 萌萌哒的第五题

Time Limit:10s Memory Limit:128MByte

Submissions:351Solved:74

DESCRIPTION

给出一个长度为m的字符串,请问有多少个长度为n的字符串不存在子串等于给出的字符串。为了简化问题,我们规定所有字符串只包含小写英文字母。
输入数据:
包含多组输入数据(<=15),每组数据:
第一行包含两个整数n和m(1 <= n,m <= 1000)
第二行包含一个长度为m的字符串,只含有小写字母。

INPUT
包含多组输入数据(<=15),每组数据: 第一行包含两个整数n和m(1 <= n,m <= 1000) 第二行包含一个长度为m的字符串,只含有小写字母。
OUTPUT
每组数据输出一行,表示答案,这个答案可能会很大,所以只需要输出答案对10^9+7求余的结果。
SAMPLE INPUT
2 2
aa
3 2
aa

SAMPLE OUTPUT
67517525

官方题解:http://www.ifrog.cc/acm/solution/16

c[i][k]表示前i-1个字符和m串前i-1个字符完全相同,而第i个字符为k和m串前缀匹配的最长长度

dp[i][j]表示长度为i的字符串中不存在子串m并且所有后缀中与m的前缀匹配的最长长度为j

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
#define mod 1000000007
char ch, str[1005];
int dp[1005][1005], c[1005][156], net[1005];
int main(void)
{int n, m, i, j, p, q, ans;while(scanf("%d%d%s", &n, &m, str+1)!=EOF){memset(dp, 0, sizeof(dp));p = 0, q = 1, net[1] = 0;while(q<=m){if(p==0 || str[p]==str[q]){net[++q] = ++p;if(str[p]==str[q])net[q] = net[p];}elsep = net[p];}for(i=1;i<=m;i++){for(ch='a';ch<='z';ch++){p = i;while(p!=0 && str[p]!=ch)p = net[p];c[i][ch] = p;}}dp[0][0] = 1;for(i=1;i<=n;i++){for(j=1;j<=m;j++){for(ch='a';ch<='z';ch++)dp[i][c[j][ch]] = (dp[i][c[j][ch]]+dp[i-1][j-1])%mod;}}ans = 0;for(i=0;i<=m-1;i++)ans = (ans+dp[n][i])%mod;printf("%d\n", ans);}return 0;
}

玲珑杯round11-E:萌萌哒的第五题相关推荐

  1. /* * 编程题第五题(20分): 本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印 ***** *** * *** ***** 所谓“

    题目: 编程题第五题(20分): 本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个"*",要求按下列格式打印 *****************    所谓" ...

  2. 2021年人工神经网络第四次作业-第五题:危险品识别

    简 介: 通过对于物品X射线数据集合的整理,挑选出15类体积比较大的物品,训练LeNet网络进行识别. 关键词: X射线,危险品识别,LeNet,Paddle #mermaid-svg-wZUMACG ...

  3. 2021年春季学期-信号与系统-第一次作业参考答案-第五题

      本文是: 2021年春季学期-信号与系统-第一次作业参考答案 的参考答案. ▌第五题 分别指出下列波形的直流分量等于多少? 说明:对于周期信号的直流分量,等于它一个周期内的平均值,即: fD(t) ...

  4. 2020年人工神经网络第二次作业-参考答案第五题

    如下是 2020年人工神经网络第二次作业 中第五题的参考答案. ➤01 第五题参考答案 1.题目分析 (1) 数据产生 100个样本随机均匀分布在三角形区域内,训练样本{xi,yi}\left\{ { ...

  5. 最长回文串_LeetCode解析,第五题:最长回文子串

    LeetCode第五题:最长回文子串 5: 英文题面: Given a string s, find the longest palindromic substring in s. You may a ...

  6. 用Java编写约分最简公式,2013年Java方向C组第五题

    第五题 标题:有理数类 有理数就是可以表示为两个整数的比值的数字.一般情况下,我们用近似的小数表示.但有些时候,不允许出现误差,必须用两个整数来表示一个有理数. 这时,我们可以建立一个"有理 ...

  7. 【JS 逆向百例】网洛者反爬练习平台第五题:控制台反调试

    关注微信公众号:K哥爬虫,持续分享爬虫进阶.JS/安卓逆向等技术干货! 文章目录 声明 逆向目标 逆向过程 声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业 ...

  8. 金陵五题·并序 刘禹锡

    余少为江南客,而未游秣陵,尝有遗恨.后为历阳守,跂而望之.适有客以<金陵五题>相示,逌尔生思,欻然有得.他日友人白乐天掉头苦吟,叹赏良久,且曰<石头>诗云"潮打空城寂 ...

  9. 2018年第九届C/C++ A组蓝桥杯省赛真题——第五题:书号验证

    第五题:书号验证 [问题描述] 2004年起,国际ISBN中心出版了<13位国际标准书号指南>. 原有10位书号前加978作为商品分类标识:校验规则也改变. 校验位的加权算法与10位ISB ...

最新文章

  1. 2016/05/03(接口 买票 临界资源同步锁)
  2. 【转】Eclipse下编写C++程序——CDT环境搭建
  3. vs插件ZunKoIDE
  4. 玩转Google开源C++单元测试框架Google Test系列(gtest)之五 - 死亡测试
  5. php网站后台无法退出,zblog“网站关闭”后进入不了后台的解决方法
  6. JS中对于prototype的理解
  7. ES6——Class 笔记
  8. 博客园怎样在Markdown编辑模式下调整图片大小(已解决)
  9. m-bom,p-bom,e-bom 这是什么意思
  10. Android截屏截图方法所有方法汇总(包括Activity、View、ScrollView、ListView、RecycleView、WebView截屏截图)
  11. 如何缩减XFS分区格式的根目录
  12. 教你如何面试进入阿里巴巴!
  13. 论文:并行化 Metropolis-Hastings 算法的一般结构
  14. python小球游戏代码
  15. 如何做一名合格的管理者?
  16. 从源头解决问题,而不是曲线救国
  17. 05——驾校科目一考试系统——验证账号密码
  18. 分布式系统详解--基础知识(概论)
  19. java简易画图程序代码_java_简易画图板
  20. i18n国际化(页面中英文切换)

热门文章

  1. 精通python工资高吗-软件测试,如何工资过万?
  2. 语音识别的两个方法_语音识别的应用有哪些
  3. 百度对数据的要求很高,智能音箱的难点是远场语音识别
  4. 10 个 PHP 常见安全问题(实例讲解)
  5. android usb软件自动安装监控,Android中监控USB的插拔
  6. JS的Document类型
  7. 计算机老师的专业发展怎么写,高职计算机教师专业发展研究
  8. python字典嵌套循环_python使用for循环更新嵌套字典值
  9. 蓝桥杯2013c++真题:振兴中华
  10. android计算汇率代码,android studio 开发实例 连接网络获取汇率