题目链接

这题,真心木啥意思,就是数据里貌似字符有负数,注意gets读入。。

 #include <iostream>
#include <cstring>
#include <cstdio>
#include <queue>
#include <algorithm>
#include <cstdlib>
using namespace std;
int trie[][];
int dp[][][];
int o[];
int que[];
int fail[];
int id[];
int t,N;
void CL()
{
t = ;
memset(trie,-,sizeof(trie));
memset(dp,,sizeof(dp));
memset(o,,sizeof(o));
memset(id,,sizeof(id));
}
void insert(char *str)
{
int len,i,root;
len = strlen(str);
root = ;
for(i = ;i < len;i ++)
{
if(trie[root][id[str[i]+]] == -)
trie[root][id[str[i]+]] = t ++;
root = trie[root][id[str[i]+]];
}
o[root] = ;
}
void build_ac()
{
int front,tail,head,i;
head = tail = ;
for(i = ;i < N;i ++)
{
if(trie[][i] != -)
{
fail[trie[][i]] = ;
que[tail++] = trie[][i];
}
else
{
trie[][i] = ;
}
}
while(head != tail)
{
front = que[head++];
if(o[fail[front]])
o[front] = ;
for(i = ;i < N;i ++)
{
if(trie[front][i] != -)
{
que[tail++] = trie[front][i];
fail[trie[front][i]] = trie[fail[front]][i];
}
else
{
trie[front][i] = trie[fail[front]][i];
}
}
}
}
int main()
{
int M,P,i,j,k,u;
int ans[];
char ch[];
while(scanf("%d%d%d%*c",&N,&M,&P)!=EOF)
{
CL();
gets(ch);
for(i = ;i < N;i ++)
{
id[ch[i]+] = i;
}
for(i = ;i < P;i ++)
{
gets(ch);
insert(ch);
}
build_ac();
dp[][][] = ;
for(i = ;i < M;i ++)
{
for(j = ;j < t;j ++)
{
if(o[j]) continue;
for(k = ;k < N;k ++)
{
if(o[trie[j][k]]) continue;
for(u = ;u < ;u ++)
{
dp[i+][trie[j][k]][u] += dp[i][j][u];
}
for(u = ;u < ;u ++)
{
if(dp[i+][trie[j][k]][u] > )
{
dp[i+][trie[j][k]][u+] += dp[i+][trie[j][k]][u]/;
dp[i+][trie[j][k]][u] = dp[i+][trie[j][k]][u]%;
}
}
}
}
}
memset(ans,,sizeof(ans));
for(i = ;i < t;i ++)
{
for(u = ;u < ;u ++)
{
ans[u] += dp[M][i][u];
}
for(u = ;u < ;u ++)
{
if(ans[u] > )
{
ans[u+] += ans[u]/;
ans[u] = ans[u]%;
}
}
}
int flag = ;
for(i = ;i >= ;i --)
{
if(ans[i] > )
flag = ;
if(flag)
printf("%d",ans[i]);
}
if(flag == )
printf("0\n");
else
printf("\n");
}
return ;
}

POJ 1625 Censored!(大数+DP)的更多相关文章

  1. POJ 1625 Censored!(AC自动机->指针版+DP+大数)题解

    题目:给你n个字母,p个模式串,要你写一个长度为m的串,要求这个串不能包含模式串,问你这样的串最多能写几个 思路:dp+AC自动机应该能看出来,万万没想到这题还要加大数...orz 状态转移方程dp[ ...

  2. POJ 1625 Censored!(AC自动机 + DP + 大数 + 拓展ASCII处理)题解

    题意:给出n个字符,p个病毒串,要你求出长度为m的不包含病毒串的主串的个数 思路:不给取模最恶劣情况$50^{50}$,所以用高精度板子.因为m比较小,可以直接用DP写. 因为给你的串的字符包含拓展A ...

  3. POJ 1625 Censored!(AC自动机+DP+高精度)

    Censored! Time Limit: 5000MS   Memory Limit: 10000K Total Submissions: 6956   Accepted: 1887 Descrip ...

  4. POJ 1625 Censored!(AC自动机+高精度+dp)

    http://poj.org/problem?id=1625 题意: 给出一些单词,求长度为m的串不包含这些单词的个数. 思路: 这道题和HDU 2243和POJ 2778是一样的,不同的是这道题不取 ...

  5. POJ 1625 Censored! (AC自己主动机 + 高精度 + DP)

    题目链接:Censored! 解析:AC自己主动机 + 高精度 + 简单DP. 字符有可能会超过128.用map映射一下就可以. 中间的数太大.得上高精度. 用矩阵高速幂会超时,简单的DP就能解决时间 ...

  6. POJ 1625 Censored ( Trie图 && DP && 高精度 )

    题意 : 给出 n 个单词组成的字符集 以及 p 个非法串,问你用字符集里面的单词构造长度为 m 的单词的方案数有多少种? 分析 :先构造出 Trie 图方便进行状态转移,这与在 POJ 2278 中 ...

  7. POJ 1625 Censored! [AC自动机 高精度]

    Censored! Time Limit: 5000MS   Memory Limit: 10000K Total Submissions: 9793   Accepted: 2686 Descrip ...

  8. POJ 1625 Censored!

    辣鸡OI毁我青春 Description The alphabet of Freeland consists of exactly N letters. Each sentence of Freela ...

  9. POJ.3624 Charm Bracelet(DP 01背包)

    POJ.3624 Charm Bracelet(DP 01背包) 题意分析 裸01背包 代码总览 #include <iostream> #include <cstdio> # ...

随机推荐

  1. Dynamo和Bigtable对比

    数据结构化问题        首先要提到的是两者存储数据属性上的区别,虽然两者都是以key/value形式进行存储,但Dynamo偏向存储原数据,因为其所存储的数据是非结构化数据,对value的解析完 ...

  2. rocksdb 编译安装 日志

    Compilation RocksDB's library should be able to compile without any dependency installed, although w ...

  3. Java for LeetCode 067 Add Binary

    Given two binary strings, return their sum (also a binary string). For example, a = "11" b ...

  4. 【linux】VMware12.0安装

    问题1:安装虚拟机时出现The Microsoft Runtime DLL installer failed to complete 解决: 重新安装,安装失败时不要点击结束,在开始“运行”出输入%t ...

  5. java用代理访问

    Properties prop = System.getProperties(); prop.setProperty("http.proxyHost", "localho ...

  6. nginx: [warn] conflicting server name "locahost" on 0.0.0.0:80, ignored

    里面域名重复: 在vhosts下多个虚拟机配置文件,都是基于域名配置的,其中两个配置文件,都起了localhost ,所以会报错!!!! 多个域名可以指向同一个目录,但同一个域名不可一指向多个目录!! ...

  7. .net学习笔记---IIS 处理模型及ASP.NET页面生命周期

    本文是基于IIS6的处理模型. 当一个客户端页面访问IIS试图获取一些信息的时候,发生了什么事情?一个请求在通过了HTTP管道后又发生了什么?本文主要是描述这两个过程,即IIS处理asp.net请求和 ...

  8. 学SEO你其实只需要半个钟

    网站上线之前: 关键词的分析以及选择: 关键词在我们网站的每个页面:首页,栏目页,文章都存在,它定位了你的网站的这个页面是做什么的,有什么内容,也是SEO中的最重要的部分. 网站必须确定并且设置好关键 ...

  9. php动态安装mongo扩展

    首先下载mongo扩展包  http://pecl.php.net/package/mongo 开始安装把 wget http://pecl.php.net/get/mongo-1.5.8.tgz t ...

  10. sublime Emmet的用法及相关语法

    本节来讲一下Emmet插件的用法及相关语法. Emmet插件极大的提高了编程员的编程速度,下面我们来讲讲它的具体语法: 一.生成 HTML 文档初始结构 HTML 文档的初始结构,就是包括 docty ...