自创算法——暴力自动机
来源:互联网 发布:国外羽绒服品牌 知乎 编辑:程序博客网 时间:2024/06/05 20:15
暴力时利用自动机的最小性,可以在暴力dfs时和匹配答案时使用自动机优化,可以使纯暴力更快。
struct baoli
{baoli *xia[51];
baoli()
{
memset(xia,NULL,sizeof(xia));
}
}root;
trie树的结构体,xia【51】代表有51个可能的分支
{
int shu,i=0;
baoli *now=root;
bool you=0;
while(i<n)
{
shu=str[i];
if(now->xia[shu]==NULL)
you=1,now->xia[shu]=new baoli();
now=now->xia[shu];
i++;
}
if(you)return 1;
else return 0;
}
类似trie树的加入,不同的是返回,加入和匹配一体化,用bool判重。
bool pipei(char str*){
int shu,i=0;
baoli *now=root;
while(i<n)
{
shu=str[i];
if(now->xia[shu]==NULL)return 0;
now=now->xia[shu];
i++;
}
return 1;
}
< =o(n)的询问(谁还能更快?)
所以程序主要复杂度在dfs,再配合优良的剪枝效率会很高。
0 3
- 自创算法——暴力自动机
- 朋友——自创诗一首
- FLEX实践—自创相册
- 算法导论—AC自动机
- 经典——设计模式(自创)
- Python算法实践——AC自动机
- 算法模板——AC自动机
- 算法复习1——暴力法
- 算法——字符串匹配之有限自动机算法
- 【BZOJ2555】SubString 后缀自动机 暴力
- 字符串匹配算法——利用有限自动机进行匹配
- 杭电ACM1277——全文检索~~AC自动机算法
- 经典算法题——第八题 AC自动机
- AC自动机2——KMP字符串匹配算法
- Aho-Corasick算法—Trie图(AC自动机)
- 一个自创的编码解码算法
- 自创的一个全组合算法
- 自创的C语言枚举字符串算法
- android intent打开各种文件的方法
- [Android新手学习笔记23]-如何使用ListView展示列表数据
- P08: 泛化物品
- Java对象大小内幕浅析
- [TPYBoard-Micropython之会python就能做硬件 4] 学习使用电位器和1602显示屏
- 自创算法——暴力自动机
- 先上两张图 搞起
- 使用JS播放HTML5中的音频
- 同步屏障CyclicBarrier
- 【新人杂记】sleep 和 wait 的区别
- linux下使用makefile问题集合
- 1038. Recover the Smallest Number
- SQL Server触发器详解
- Android基础—Camera调用及注册