char str1[5100009], str2[5100009];
int cnt;
struct trie
{
trie *ch[26];
trie *fail;
int end;
void init()
{
memset(ch, NULL, sizeof(ch));
fail = NULL;
end = 0;
}
}*root, t[maxn];
void insert(char *s)
{
trie *p = root;
for(int i=0; s[i]; i++)
{
//cout<<i<<' '<<s[i]<<endl;
int k = s[i]-'A';
if(p->ch[k]==NULL)
{
t[cnt].init();
p->ch[k] = &t[cnt++];
}
p = p->ch[k];
}
p->end = 1;
}
queue<trie*>q;
void build_fail()
{
q.push(root);
root->fail = root;
while(!q.empty())
{
trie *p = q.front();
q.pop();
for(int k=0; k<26; k++)
if(p->ch[k]!=NULL)
{
q.push(p->ch[k]);
if(p==root)
{
p->ch[k]->fail = root;
continue;
}
trie *tmp = p->fail;
while( tmp!=root && tmp->ch[k]==NULL)
tmp = tmp->fail;
if(tmp->ch[k]) p->ch[k]->fail = tmp->ch[k];
else p->ch[k]->fail = root;
}
}
}
int query(char *a)
{
int ans = 0;
trie *p = root;
for(int i=0; a[i]; i++)
{
if(a[i]<'A' || a[i]>'Z')
{
p = root;
continue;
}
int k = a[i]-'A';
while(p->ch[k]==NULL && p!=root) p=p->fail;
p = p->ch[k];
p = (p==NULL)? root : p;
trie *tmp = p;
while(tmp!=root && tmp->end!=0)
{
ans++;
tmp->end = 0;
tmp = tmp->fail;
}
}
return ans;
}
int main()
{
int tt, n, i, j;
scanf("%d", &tt);
while(tt--)
{
cnt = 1;
t[0].init();
root = &t[0];
scanf("%d", &n);
while(n--)
{
scanf("%s", str1+1);
for(i=1, j=1; str1[i]; i++)
{
if(str1[i]>='A' && str1[i]<='Z') str2[j++] = str1[i];
else
{
i++;
int k = str1[i]-'0';
i++;
while(str1[i]>='0'&&str1[i]<='9') k = k*10+ str1[i++]-'0';
while(k--) str2[j++] = str1[i];
i++;
}
}
str2[j] = '\0';
insert(str2+1);
}
build_fail();
scanf("%s", str1+1);
for(i=1, j=1; str1[i]; i++)
{
if(str1[i]>='A' && str1[i]<='Z') str2[j++] = str1[i];
else
{
i++;
int k = str1[i]-'0';
i++;
while(str1[i]>='0'&&str1[i]<='9') k = k*10+ str1[i++]-'0';
while(k--) str2[j++] = str1[i];
i++;
}
}
str2[j] = '\0';
//cout<<str2+1<<endl;
int ans = query(str2+1);
for(i=1, j=strlen(str2+1); i<j; i++, j--)
swap(str2[i], str2[j]);
ans += query( str2+1 );
printf("%d\n", ans);
}
return 0;
}
相关推荐
Android 16(API 36)状态栏颜色适配全攻略:从沉浸式到自定义背景
本文全面解析Android 16(API 36)强制沉浸式状态栏带来的适配挑战,提供了从FrameLayout包裹法到动态修改Window背景色的核心解决方案。针对传统状态栏颜色设置失效问题,详细阐述了如何利用WindowInsets API实现自定义背景,并涵盖全屏模式、Fragment切换及第三方ROM兼容性等实战场景,为开发者提供一站式适配指南。
HDU 3695 (AC自动机)
题目链接:点击这里题意:求文本串中出现的模式串个数。模式串反着出现也算。把模式串正反都扔进自动机,节点开一个vector存下来所有的以这个节点结尾的模式串,然后扫一遍就行了。注意正反算一种trick:q不是只有一位#include <cstdio> #include <cmath> #include <algorithm> #include <iostream> #include <vector>
Halcon手眼标定实战:九点标定法从入门到精通(附完整代码)
本文详细介绍了Halcon环境下九点标定法的完整实现流程,从基础概念到实战技巧,帮助开发者快速掌握手眼标定技术。通过精确采集图像坐标与机械坐标,计算仿射变换矩阵,实现相机与机械臂坐标系的精确映射,适用于工业自动化中的平面定位场景。
HDU 3695 浅谈AC自动机模式串匹配算法+严格空间控制
世界真的很大 日常被数组坑233 感觉怎么也调不出来的时候就去看一下是不是空间的问题吧。。 HDU的题日常多组数据。。 每组数据用完不清零基本上MLE看题先:description:给出很多个模式串,问在文章里有几个模式串,(反过来的模式串也算)出现过 文章里有时会有形如[n X]的东西,n是数字,X是字符,表示这个位置有n个X字符 n不一定是一位数input:多组数据,每组数据开头一个数字
embedding计算过程
文章目录embedding计算过程(错了跟我讲,我会改)参考示例个人理解过程图示总结(基于pytorch) embedding计算过程(错了跟我讲,我会改) 参考示例 https://www.jianshu.com/p/63e7acc5e890 个人理解过程图示 总结(基于pytorch) 总的来说,就是将独热向量的长度(对应嵌入层的num_embeddings)转变为嵌入层的emdedding_size(而独热向量的维数就是你的数据中一共产生了多少个不一样的词,至少是这么多)。 数据的变化,将二维
安卓手机游戏《英雄迷宫冒险》存档修改
警告 修改前务必备份存档文件夹。该游戏有自动删除存档的功能,有问题的存档会自动删除。 修改对应的游戏版本为1.5。 存档保存位置 内部存储\Android\data\com.xmmf.yxmgmx.taptap\files 该文件夹中文件如下: data.wsf:数据文件。 wsfSave0:第一个存档。 wsfSave1:第二个存档。 修改金钱的例子 先进游戏确认当前金钱数量。当前金钱是2498,然后退出游戏。 根据金钱数量计算出存档中的内容。2498的十六进制是9C2,存档中的内容在存档中搜索该数
HDU-3695 Computer Virus on Planet Pandora
HDU-3695 Computer Virus on Planet Pandora 题意:电脑中病毒了, 现在n钟病毒指令, 然后有一个电脑指令, 看一下这个电脑指令中了几个病毒, 如果电脑种了某一个病毒, 那么就有子串是病毒指令, 或者 子串的反串是病毒指令, 现在问电脑指令一共感染了多少病毒。 题解:AC自动机,然后正向匹配一遍, 反向匹配一遍。 代码: 1 #i...
R语言caret拟合模型:train函数构建xgBoost Dart模型、模型调优、自定义设置trainControl函数和tuneLength参数
R语言caret拟合模型:train函数构建xgBoost Dart模型、模型调优、自定义设置trainControl函数和tuneLength参数
hdu3695 Computer Virus on Planet Pandora
Computer Virus on Planet Pandora Time Limit: 6000/2000 MS (Java/Others) Memory Limit: 256000/128000 K (Java/Others) Total Submission(s): 2208 Accepted Submission(s): 616 Problem Descrip
结构光相移法-多频外差原理与实践
结构光相移法是一种常用的三维形貌测量技术,它通过对投射到目标物体上的结构光进行相位调制和解调,实现对物体表面的三维重建。其中,多频外差原理是结构光相移法的核心原理之一,通过使用不同频率的结构光来实现相位测量,并可以提高测量精度和抗干扰性能。结构光相移法的多频外差原理是一种常用的三维形貌测量技术,它通过使用多个不同频率的结构光进行相位调制和解调,实现对物体表面的三维重建。本文介绍了多频外差原理的原理和实践应用,并提供了相应的Python源代码,希望对读者理解和应用结构光相移法有所帮助。
Unity-Mirror网络框架-从入门到精通之Mirror简介
在现代游戏开发中,网络功能日益成为提升游戏体验的关键组成部分。Mirror是一个用于Unity的开源网络框架,专为多人游戏开发设计。它使得开发者能够轻松实现网络连接、数据同步和游戏状态管理。本文将深入介绍Mirror的基本概念、如何与其他网络框架进行比较,以及如何从零开始创建一个使用Mirror的简单网络项目。Mirror是一个功能强大的Lite网络框架,旨在替代Unity的UNet网络解决方案。它提供了高效的多玩家架构、简单易用的API,以及良好的社区支持。
HDU 3695 Computer Virus on Planet Pandora (AC自动机)
题意:有n种病毒序列(字符串),一个模式串,问这个字符串包含几种病毒。 包含相反的病毒也算,字符串中[qx]表示有q个x字符。详细见案列。 0 3 2 AB DCB DACB 3 ABC CDE GHI ABCCDEFIHG 4 ABB ACDEE BBB FEEE A[2B]CD[4E]F Sample Output 0 3 2
Allegro172版本DFM功能介绍
Allegro172版本提供了实时DFM检查的功能,让违反要求的地方实时以DRC的形式报出来,让加工不可加工因素在设计的时候同步避免。打开Constraint,选择Manufacturing, 所有DFM相关DRC都在这。把所有下面DRC开关(DFM,DFA,DFT)都选择on,选择OK。这个规则和物理和间距规则等等都没有关系,单独的一个加工规则。这些DRC大部分是正常的,正常的可以去修改规则来消除。等待DRC刷新,板子上会出现很多DRC,类似下图。下面介绍如何调用和产生DFM规则。一直往下点击next。
HDU 3695 Computer Virus on Planet Pandora AC自动机裸题
题目来源:HDU 3695 Computer Virus on Planet Pandora 题意:输入n个字符串 求最后一个字符串有n个字符串中的几种 思路:直接暴力ac自动机 #include #include #include using namespace std; const int maxn = 5200010; char s1[maxn], s2[maxn], s3[ma
VB摄像头监控
该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制
ssm框架搭建
这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载
hdu 3695 ac自动机
n个子串,一个母串,问有多少个子串在母串中出现,包括被反转的子串。 只要把母串正着反着各自匹配一遍就行。 同样用的hdu 2222的模版 #include #include #include using namespace std; struct node{ int num; node *next[26],*fail; node(){ num=0; fail=NUL
efm32 入门.pdf
本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。
HDU 3695 AC自动机 裸题
题意: T个测试数据 n个模版 母串 问: 模版,在母串或翻转母串中出现的个数 注意模版会重复( 一样的单词可能重复出现 ) #include #include #include using namespace std; inline int Max(int a,int b){return a>b?a:b;} inline int Min(int a
温度PID控制PLC程序
温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值
HDU 3695 Computer Virus on Planet Pandora(AC自动机)
做比赛的时候看这题就感觉是自动机,当时只是听说过有这个算法,但是根本没看过,晚上回去以后找教程看了一下复制了hh大神的模版,又自己敲了一下模版题,终于弄明白一点了,今天又做了一下F题这题和我做的那个模版题挺像的,不过就是多了反转以后的匹配和字符串的转换,其他的就是套模版而已。现在我也只能套模版,网上的英文教程看的云里雾里的,算了先搞个模版再说吧……#include #include #incl
hdu3695(AC自动机)
Computer Virus on Planet Pandora Time Limit: 6000/2000 MS (Java/Others) Memory Limit: 256000/128000 K (Java/Others) Total Submission(s): 1782 Accepted Submission(s): 496 Problem Descripti
hdu 3695 AC自动机模板题
Keywords Search Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 23502 Accepted Submission(s): 7763 Problem Description In the mo
hdu 3695 Computer Virus on Planet Pandora AC自动机
Computer Virus on Planet Pandora Time Limit: 6000/2000 MS (Java/Others) Memory Limit: 256000/128000 K (Java/Others) Total Submission(s): 1609 Accepted Submission(s): 454 Problem Descrip
hdu 3695 Computer Virus on Planet Pandora ac自动机
#include #include #include using namespace std; #define SIGMA_SIZE 30 #define MAXNODE 300000 int ch[MAXNODE][SIGMA_SIZE]; int f[MAXNODE]; // fail函数 int val[MAXNODE]; // 每个字符串的结尾结点都有一个非0的val int
hdu 3695 Computer Virus on Planet Pandora(AC自动机)
题目连接:hdu 3695 Computer Virus on Planet Pandora 题目大意:给定一些病毒串,要求判断说给定串中包含几个病毒串,包括反转。 解题思路:将给定的字符串展开,然后匹配一次后反转后再匹配一次。 #include #include #include #include #include #include using namespace s
HDU 3695:Computer Virus on Planet Pandora(AC自动机裸题,数组实现AC自动机)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3695 题目意思,给出n个模式串和一个文本串,求n个模式串在文本串正串,和反向串中出现的个数。 AC自动机裸题,把文本串在AC自动机上跑一遍,统计一下有多少模式串出现在正着的文本串, 然后将文本串逆序,再在AC自动机上跑一边,统计一下有多少模式串出现在反着的文本串。 不能用动态链表写,开
HDU 3695 Computer Virus on Planet Pandora(AC自动机)
链接: http://acm.hdu.edu.cn/showproblem.php?pid=3695 题目大意: 给出n个匹配串,然后给一个长串S,找出S中有多少种匹配串。注意匹配串在S中正反出现的顺序都算是出现。 S可能会有些段是压缩过的,格式为【qx】,q是一个数字,x是一个字母,代表有q个x。 假设 把B【3A】DE“解压缩”之后,就是 BAAADE 分析与总
HDU 3695 Computer Virus on Planet Pandora AC自动机
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=3695题意外星人的程序全是由大小写的英文字母组成,外星人也会写病毒程序。病毒程序也是大小写的英文字母组成,如果病毒是某个程序的子串,或者病毒的反转串是程序的子串,那么就说程序被该病毒感染。给出一个病毒及一个程序,问程序被之中的几个病毒感染了。思路将程序解析成字符串,正反在查询即可。。解析函数写错导致无限WA
594



被折叠的 条评论
为什么被折叠?



