自创算法——暴力自动机
暴力时利用自动机的最小性,可以在暴力dfs时和匹配答案时使用自动机优化,可以使纯暴力更快。
struct baoli
{
baoli *xia[51];
baoli()
{
memset(xia,NULL,sizeof(xia));
}
}root;
trie树的结构体,xia【51】代表有51个可能的分支
bool insert(char *str)
{
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,再配合优良的剪枝效率会很高。
自创算法——暴力自动机相关推荐
- 算法——暴力之美(volence‘s beautify of algorithm)
暴力算法(volence's beautify of algorithm) 思想:利用暴力法的思想找到所有的解,然后从中选出符合问题要求的解 算法总结:暴力法的优点是实现简单,容易编程,但是往往会消耗 ...
- 字符串算法 | AC自动机算法
1.简介 一种多模式串匹配算法, 可以快速从主串中同时找出所有包含的所有模式串. 对比KMP是单模式匹配, 虽然可以使用单模式串匹配算法逐个进行查找模式串, 但是实际场景中,若模式串的数量可能很大,并 ...
- 一个可以AK IOI的算法——暴力
暴力 很多问题都可以"暴力求解",不用动太大脑筋,把所有可能性都列举出来,然后一一试验.虽然暴力求解法不用动太大大脑筋,但要注意时间复杂磁.因此,对问题一定的分析往往会让算法更加简 ...
- BF算法(暴力算法)--模式匹配算法
模式匹配算法:是数据结构中字符串的一种基本运算,给定一个子串,要求在某个字符串中找出与该子串相同的所有子串,这就是模式匹配.用途:搜索引擎.拼写检查.语言翻译.数据压缩等. BF算法: ...
- 根号算法——暴力美学
零.前言 • 根号算法是一种很常见的算法 • 常见的根号思想有:双向搜索.根号分类讨论.根号重建.复杂 度平衡,以及一些根号级别的数据结构如分块和莫队 • 这些算法一般是多种暴力算法的结合,一般具有较 ...
- 枚举算法(暴力法)板子
1.枚举算法的定义: 在进行归纳推理时,如果逐个考察了某类事件的所有可能情况,因而得出一般结论,那么该结论是可靠 的,这种归纳方法叫做枚举法,因其逐个考察的性质又称其为"暴力枚举法" ...
- 自创算法实现Reporting Service中多值判定
前提条件:用Reporting Service做过报表,并碰到想确定多选下拉框选了哪些选项却无法确定的情况.如:根据选项显示相应的值. 功能实现:用算法实现Reporting Service中多值判定 ...
- 算法篇 --- BF算法(暴力匹配算法)
找字符串 abcac,在一个串中找另一个串 上下两个字符串的第一个字符比较,如果上下两个字符串的字符不同,上面的字符串(原字符串)就移动一个位置,下面的字符串(给定字符串)不移动 如果第1个字符相同, ...
- bzoj 3620: 似乎在梦中见过的样子 kmp算法+暴力
题意 "Madoka,不要相信 QB!"伴随着 Homura 的失望地喊叫,Madoka 与 QB 签订了契约. 这是 Modoka 的一个噩梦,也同时是上个轮回中所发生的事.为了 ...
最新文章
- 通过修改软链接升高 gcc 版本、降低 gcc 版本
- Python的零基础超详细讲解(第一天)-Python简介以及下载
- python等间隔取样
- 3字节转换为有符号整型C语言,3.C语言整型数据
- [恢]hdu 2098
- python3 列表的增删改查
- Edraw Max——亿图图示设计软件基本使用教程
- mysql 可重复读 悲观锁_一文带你理解脏读,幻读,不可重复读与mysql的锁,事务隔离机制...
- GPRS模块AT呼叫控制命令
- awk按分隔符的不同取出不同的列
- Android系统信息获取 之八:WIFI设备和WIFI信号信息获取
- python3 matplotlib多个子图分别对应不同colorbar
- 2018第九届蓝桥杯省赛真题JAVA语言 C组真题题解答案(全)
- python实现车牌识别系统
- Skin Pack Auto UXThemePatcher-Win8 UXTheme桌面主题破解补丁
- [buuctf.reverse] 131-135
- 0.91寸 SSD1306 OLED介绍(四) --- 用上位机验证OLED显示屏
- 广义表的表头和表尾是什么?
- android 原生请求权限代码
- Win7系统中wmiprvse.exe占用CPU高如何解决