erewrwerwer

来源:互联网 发布:程序员入门书籍 编辑:程序博客网 时间:2024/06/01 10:08

问题 B: erewrwerwer

时间限制: 1 Sec  内存限制: 512 MB

题目描述

给你一个字符串,请问其有多少个子序列为erewrwerwer

 

输入格式:

一行一个字符串,由小写字母’e’、’w’或者’r’组成

 

输出格式:

一行一个整数,表示为erewrwerwer的子序列数,模1e9+7

 

样例输入:

erewrwerwererewrwerwer

 

样例输出:

260

 

数据范围与约定:

设n为字符串长度

对于前%20的数据,n<=11

对于另外%30的数据,n<=20

对于%100的数据,n<=100000

#include<iostream>#include<cmath>#include<cstring>#include<cstdio>#include<queue>#include<map>#include<cstdlib>#include<algorithm>#define V 100005#define mod 1000000007#define LL long longusing namespace std;LL f[V][20];int n,m;string w,md;inline int haha(){    // freopen("in.txt","r",stdin);//freopen("out.txt","w",stdout);// freopen("ere.in","r",stdin);freopen("ere.out","w",stdout);   cin>>w;   n=w.size();   md="erewrwerwer";   m=md.size();   //cout<<md<<endl;   for(int i=1;i<=n;i++)   {       if(w[i-1]==md[0])       f[i][1]=1;   for(int j=1;j<=m;j++)   {   f[i][j]+=f[i-1][j];if(w[i-1]==md[j-1])       {           f[i][j]+=f[i-1][j-1];f[i][j]%=mod;       }       f[i][j]%=mod;}   }   cout<<f[n][m]<<endl;return 0; }int gg=haha();int main(){;}


原创粉丝点击