博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj 2553: [BeiJing2011]禁忌 AC自动机+矩阵乘法
阅读量:4560 次
发布时间:2019-06-08

本文共 1098 字,大约阅读时间需要 3 分钟。

题目大意:

题解:

利用AC自动机的dp求出所有的转移

然后将所有的转移储存到矩阵中,进行矩阵乘法即可

#include 
#include
#include
using namespace std;typedef long long ll;inline void read(int &x){ x=0;char ch;bool flag = false; while(ch=getchar(),ch<'!');if(ch == '-') ch=getchar(),flag = true; while(x=10*x+ch-'0',ch=getchar(),ch>'!');if(flag) x=-x;}const int maxn = 88;int maxc,n,m;int ch[maxn][26],nodecnt;bool danger[maxn];inline void insert(char *s){ int len = strlen(s),nw = 0; for(int i=0;i
n = n;this->m = m; memset(s,0,sizeof s); } Matrix friend operator * (const Matrix &a,const Matrix &b){ Matrix c;c.clear(a.n,b.m); for(int i=0;i
>=1,x=x*x) if(p&1) ret=ret*x; return ret;}char s[22];int main(){ read(n);read(m);read(maxc); for(int i=1;i<=n;++i){ scanf("%s",s); insert(s); }build(); ori.clear(1,nodecnt+2);ori.s[0][nodecnt+1] = 1.0; mul.clear(nodecnt+2,nodecnt+2); for(int i=0;i<=nodecnt;++i){ for(int c=0;c

转载于:https://www.cnblogs.com/Skyminer/p/6500017.html

你可能感兴趣的文章
vs2012 出现断点无法命中 解决方案。
查看>>
weex图片加载更多方法loadmore的使用
查看>>
创建您的 ActiveReports Web端在线报表设计器
查看>>
项目复审
查看>>
FreeMarker学习
查看>>
hihocoder 1631
查看>>
2018大都会赛 A Fruit Ninja【随机数】
查看>>
【实战HTML5与CSS3】用HTML5和CSS3制作页面(上)
查看>>
小公司的一年,一起看看小公司的前端可以怎么做
查看>>
oracle数据批处理
查看>>
Json网络解析
查看>>
[转]Google Chrome/IE/FireFox查看HTTP请求头request header响应头
查看>>
Harris角点检测
查看>>
Struts2的处理流程及为Action的属性注入值
查看>>
设计中最常用的CSS选择器
查看>>
Maven项目打包成可执行Jar文件
查看>>
nginx http proxy 正向代理
查看>>
对BFC的总结
查看>>
第十四周Java学习总结
查看>>
税率等级
查看>>