分析:对于第一个点,答案为26^n - 25^n,这个很好想.另外30%的点因为n <= 5,所以可以直接暴力搜索.

数学方法不是很好处理,考虑dp,设f[i][j]为前i位匹配到危险串第j位的方案数,枚举第i+1位上的字母k,f[i][j]可以转移到f[i+1][危险串中下一个k出现的位置],危险串中中下一个k出现的位置必须要满足前面都能匹配上,后面没有就是前一次出现k的位置,这么说来比较抽象,可以理解为KMP中的失配函数:如果j+1位是k,直接转移到j+1就好了,因为1~j都是匹配好的,1~nextt[i]也是匹配好的,所以能转移到nextt[i]上去.nextt即为失配函数.最后统计一下f[n][0~len - 1]就可以了.

两个字符串匹配的问题dp状态的前2维一般可以表示为第一个字符串匹配到第i位,第二个字符串匹配到第j位.剩下的要根据题目的要求来,i肯定是要顺序枚举的,接下来就是讨论第i位和第j位能否匹配得上,能要怎么转移,不能要怎么转移.有时候还要讨论第i位是否要去和第j位进行匹配,具体题目具体分析,知道了一般的套路,遇到这种题总不至于下不了手.

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm> using namespace std; const int mod = 1e9 + ; long long n, len, nextt[], jump[][], f[][];
long long ans;
char s[]; int main()
{
while (scanf("%lld", &n) != EOF)
{
ans = ;
memset(f, , sizeof(f));
scanf("%s", s + );
len = strlen(s + );
long long j = ;
for (long long i = ; i <= len; i++)
{
while (s[j + ] != s[i] && j)
j = nextt[j];
if (s[j + ] == s[i])
j++;
nextt[i] = j;
}
for (long long i = ; i <= len; i++)
for (long long j = 'a'; j <= 'z'; j++)
{
long long k = i;
while (s[k + ] != j && k)
k = nextt[k];
if (s[k + ] == j)
k++;
jump[i][j] = k;
}
f[][] = ;
for (long long i = ; i < n; i++)
for (long long j = ; j < len; j++)
for (long long k = 'a'; k <= 'z'; k++)
{
f[i + ][jump[j][k]] += f[i][j];
f[i + ][jump[j][k]] %= mod;
}
for (long long i = ; i < len; i++)
{
ans += f[n][i];
ans %= mod;
}
printf("%lld\n", ans);
} return ;
}

noip模拟赛 helloworld的更多相关文章

  1. NOIP模拟赛20161022

    NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...

  2. contesthunter暑假NOIP模拟赛第一场题解

    contesthunter暑假NOIP模拟赛#1题解: 第一题:杯具大派送 水题.枚举A,B的公约数即可. #include <algorithm> #include <cmath& ...

  3. NOIP模拟赛 by hzwer

    2015年10月04日NOIP模拟赛 by hzwer    (这是小奇=> 小奇挖矿2(mining) [题目背景] 小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿 ...

  4. 大家AK杯 灰天飞雁NOIP模拟赛题解/数据/标程

    数据 http://files.cnblogs.com/htfy/data.zip 简要题解 桌球碰撞 纯模拟,注意一开始就在袋口和v=0的情况.v和坐标可以是小数.为保险起见最好用extended/ ...

  5. 队爷的讲学计划 CH Round #59 - OrzCC杯NOIP模拟赛day1

    题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的讲学计划 题解:刚开始理解题意理解了好半天,然后发 ...

  6. 队爷的Au Plan CH Round #59 - OrzCC杯NOIP模拟赛day1

    题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的Au%20Plan 题解:看了题之后觉得肯定是DP ...

  7. 队爷的新书 CH Round #59 - OrzCC杯NOIP模拟赛day1

    题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的新书 题解:看到这题就想到了 poetize 的封 ...

  8. CH Round #58 - OrzCC杯noip模拟赛day2

    A:颜色问题 题目:http://ch.ezoj.tk/contest/CH%20Round%20%2358%20-%20OrzCC杯noip模拟赛day2/颜色问题 题解:算一下每个仆人到它的目的地 ...

  9. CH Round #52 - Thinking Bear #1 (NOIP模拟赛)

    A.拆地毯 题目:http://www.contesthunter.org/contest/CH%20Round%20%2352%20-%20Thinking%20Bear%20%231%20(NOI ...

随机推荐

  1. Java开发工程师(Web方向) - 03.数据库开发 - 第5章.MyBatis

    第5章--MyBatis MyBatis入门 Abstract: 数据库框架的工作原理和使用方法(以MyBatis为例) 面向对象的世界与关系型数据库的鸿沟: 面向对象世界中的数据是对象: 关系型数据 ...

  2. Grid 网格布局

    CSS 网格布局(Grid Layout) 是CSS中最强大的布局系统. 这是一个二维系统,这意味着它可以同时处理列和行,不像 flexbox 那样主要是一维系统. 你可以通过将CSS规则应用于父元素 ...

  3. 什么是Spark

    什么是Spark Apache Spark是一个开源集群运算框架, 相对于Hadoop的MapReduce会在运行完工作后将中介数据存放到磁盘中,Spark使用了存储器内运算技术,能在数据尚未写入硬盘 ...

  4. kvm虚拟化操作

    本节演示如何使用 virt-manager 启动 KVM 虚机. 首先通过命令 virt-manager 启动图形界面 # virt-manager 点上面的图标创建虚机 给虚机命名为 kvm1,这里 ...

  5. 六:YARN Node Labels

    参考:http://dongxicheng.org/mapreduce-nextgen/hadoop-yarn-label-based-scheduling/ 为不同的DATANODE打标签,通过标签 ...

  6. Python—列表(一个“打了激素”的数组)

    我们在C语言中会使用数组来将一大堆数据类型一样的数据挨个摆在一起,但是数组有一个基本的要求,就是数据类型必须是一致的,我们知道Python的变量由于没有数据类型,也就是说Python没有数组这一概念, ...

  7. 算法与数据结构实验题 6.3 search

    ★实验任务 可怜的 Bibi 刚刚回到家,就发现自己的手机丢了,现在他决定回头去搜索 自己的手机. 现在我们假设 Bibi 的家位于一棵二叉树的根部.在 Bibi 的心中,每个节点 都有一个权值 x, ...

  8. js 拼接字符串时,本来想要’#1′ ,返回的却是’#01′

    今天在操作一个元素时,id值是拼接的. var index = $(this).attr(‘index’);    //0var id = ‘#’ + (index+1);    //#01$(id) ...

  9. <Effective C++>读书摘要--Designs and Declarations<二>

    <Item 20> Prefer pass-by-reference-to-const to pass-by-value 1.By default, C++ passes objects ...

  10. 转Web开发的发展史---Web开发技术的演变

    转自:http://blog.csdn.net/zzzkk2009/article/details/9849431 在接下来的几个月时间里,我打算写一系列关于完整web开发的文章.这第一篇文章虽然有所 ...