HDU-3695-ac自动机

JaCoCo报告聚合的5个常见坑点排查指南:从单模块到多模块的完整避坑手册 本文详细解析了JaCoCo在多模块Maven项目中生成聚合报告时的5个常见问题,包括多模块报告聚合失效、覆盖率数据不一致、增量构建导致的覆盖率丢失等,并提供了具体的配置示例和解决方案。帮助开发者高效排查和解决JaCoCo报告聚合中的各种疑难杂症,提升代码覆盖率分析的准确性和效率。 阅读详情
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;
}


arduino esp8266_Arduino传感器教程 第22章ESP8266 控制 5V 继电器 ESP8266控制5V继电器目录一、NodeMCU二、工作原理本文将使用亚马逊 AlexaEcho 和 ESP8266 控制 5V 继电器。NodeMCUNodeMCU 是一个开源的 IoT 物联网硬件开发板,由于它支持 WIFI 功能且使用方法十分类似 Arduino 开发板,所以近些年获得了越来越多来自全世界的创客朋友们的青睐。NodeMCU 尺寸与 Arduino Nano 类似。... 阅读详情

相关推荐

Android 16(API 36)状态栏颜色适配全攻略:从沉浸式到自定义背景

本文全面解析Android 16(API 36)强制沉浸式状态栏带来的适配挑战,提供了从FrameLayout包裹法到动态修改Window背景色的核心解决方案。针对传统状态栏颜色设置失效问题,详细阐述了如何利用WindowInsets API实现自定义背景,并涵盖全屏模式、Fragment切换及第三方ROM兼容性等实战场景,为开发者提供一站式适配指南。

weixin_29227425的博客 594

HDU 3695 (AC自动机)

题目链接:点击这里题意:求文本串中出现的模式串个数。模式串反着出现也算。把模式串正反都扔进自动机,节点开一个vector存下来所有的以这个节点结尾的模式串,然后扫一遍就行了。注意正反算一种trick:q不是只有一位#include <cstdio> #include <cmath> #include <algorithm> #include <iostream> #include <vector>

morejarphone~ 397

Halcon手眼标定实战:九点标定法从入门到精通(附完整代码)

本文详细介绍了Halcon环境下九点标定法的完整实现流程,从基础概念到实战技巧,帮助开发者快速掌握手眼标定技术。通过精确采集图像坐标与机械坐标,计算仿射变换矩阵,实现相机与机械臂坐标系的精确映射,适用于工业自动化中的平面定位场景。

v4w5x6的博客 410

HDU 3695 浅谈AC自动机模式串匹配算法+严格空间控制

世界真的很大 日常被数组坑233 感觉怎么也调不出来的时候就去看一下是不是空间的问题吧。。 HDU的题日常多组数据。。 每组数据用完不清零基本上MLE看题先:description:给出很多个模式串,问在文章里有几个模式串,(反过来的模式串也算)出现过 文章里有时会有形如[n X]的东西,n是数字,X是字符,表示这个位置有n个X字符 n不一定是一位数input:多组数据,每组数据开头一个数字

BerryKanry的博客 695

embedding计算过程

文章目录embedding计算过程(错了跟我讲,我会改)参考示例个人理解过程图示总结(基于pytorch) embedding计算过程(错了跟我讲,我会改) 参考示例 https://www.jianshu.com/p/63e7acc5e890 个人理解过程图示 总结(基于pytorch) 总的来说,就是将独热向量的长度(对应嵌入层的num_embeddings)转变为嵌入层的emdedding_size(而独热向量的维数就是你的数据中一共产生了多少个不一样的词,至少是这么多)。 数据的变化,将二维

纸上得来终觉浅,绝知此事要躬行! 1631

安卓手机游戏《英雄迷宫冒险》存档修改

警告 修改前务必备份存档文件夹。该游戏有自动删除存档的功能,有问题的存档会自动删除。 修改对应的游戏版本为1.5。 存档保存位置 内部存储\Android\data\com.xmmf.yxmgmx.taptap\files 该文件夹中文件如下: data.wsf:数据文件。 wsfSave0:第一个存档。 wsfSave1:第二个存档。 修改金钱的例子 先进游戏确认当前金钱数量。当前金钱是2498,然后退出游戏。 根据金钱数量计算出存档中的内容。2498的十六进制是9C2,存档中的内容在存档中搜索该数

番茄鸡蛋的专栏 9360

HDU-3695 Computer Virus on Planet Pandora

HDU-3695 Computer Virus on Planet Pandora 题意:电脑中病毒了, 现在n钟病毒指令, 然后有一个电脑指令, 看一下这个电脑指令中了几个病毒, 如果电脑种了某一个病毒, 那么就有子串是病毒指令, 或者 子串的反串是病毒指令, 现在问电脑指令一共感染了多少病毒。 题解:AC自动机,然后正向匹配一遍, 反向匹配一遍。 代码: 1 #i...

dengpangbu3703的博客 163

R语言caret拟合模型:train函数构建xgBoost Dart模型、模型调优、自定义设置trainControl函数和tuneLength参数

R语言caret拟合模型:train函数构建xgBoost Dart模型、模型调优、自定义设置trainControl函数和tuneLength参数

statistics+insight+vista+power 530

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

习惯与规则决定命运 878

结构光相移法-多频外差原理与实践

结构光相移法是一种常用的三维形貌测量技术,它通过对投射到目标物体上的结构光进行相位调制和解调,实现对物体表面的三维重建。其中,多频外差原理是结构光相移法的核心原理之一,通过使用不同频率的结构光来实现相位测量,并可以提高测量精度和抗干扰性能。结构光相移法的多频外差原理是一种常用的三维形貌测量技术,它通过使用多个不同频率的结构光进行相位调制和解调,实现对物体表面的三维重建。本文介绍了多频外差原理的原理和实践应用,并提供了相应的Python源代码,希望对读者理解和应用结构光相移法有所帮助。

CodeByte的博客 737

Unity-Mirror网络框架-从入门到精通之Mirror简介

在现代游戏开发中,网络功能日益成为提升游戏体验的关键组成部分。Mirror是一个用于Unity的开源网络框架,专为多人游戏开发设计。它使得开发者能够轻松实现网络连接、数据同步和游戏状态管理。本文将深入介绍Mirror的基本概念、如何与其他网络框架进行比较,以及如何从零开始创建一个使用Mirror的简单网络项目。Mirror是一个功能强大的Lite网络框架,旨在替代Unity的UNet网络解决方案。它提供了高效的多玩家架构、简单易用的API,以及良好的社区支持。

TxNet 3087

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

不吸血的Vampire 763

Allegro172版本DFM功能介绍

Allegro172版本提供了实时DFM检查的功能,让违反要求的地方实时以DRC的形式报出来,让加工不可加工因素在设计的时候同步避免。打开Constraint,选择Manufacturing, 所有DFM相关DRC都在这。把所有下面DRC开关(DFM,DFA,DFT)都选择on,选择OK。这个规则和物理和间距规则等等都没有关系,单独的一个加工规则。这些DRC大部分是正常的,正常的可以去修改规则来消除。等待DRC刷新,板子上会出现很多DRC,类似下图。下面介绍如何调用和产生DFM规则。一直往下点击next。

weixin_54787054的博客 1338

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

嗯。 1135

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

孩子 要努力啊 753

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

九野的博客 2890

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

HDU 3695 Computer Virus on Planet Pandora(AC自动机)

做比赛的时候看这题就感觉是自动机,当时只是听说过有这个算法,但是根本没看过,晚上回去以后找教程看了一下复制了hh大神的模版,又自己敲了一下模版题,终于弄明白一点了,今天又做了一下F题这题和我做的那个模版题挺像的,不过就是多了反转以后的匹配和字符串的转换,其他的就是套模版而已。现在我也只能套模版,网上的英文教程看的云里雾里的,算了先搞个模版再说吧……#include #include #incl

XDU_Truth的专栏 810

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

晓风残月xj 848

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

Azarath Metrion Zinthos 753

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

Azarath Metrion Zinthos 883

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

KIDGIN7439的专栏 626

hdu 3695 Computer Virus on Planet Pandora(AC自动机)

题目连接:hdu 3695 Computer Virus on Planet Pandora 题目大意:给定一些病毒串,要求判断说给定串中包含几个病毒串,包括反转。 解题思路:将给定的字符串展开,然后匹配一次后反转后再匹配一次。 #include #include #include #include #include #include using namespace s

不慌不忙、不急不躁 1415

HDU 3695:Computer Virus on Planet Pandora(AC自动机裸题,数组实现AC自动机)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3695 题目意思,给出n个模式串和一个文本串,求n个模式串在文本串正串,和反向串中出现的个数。 AC自动机裸题,把文本串在AC自动机上跑一遍,统计一下有多少模式串出现在正着的文本串, 然后将文本串逆序,再在AC自动机上跑一边,统计一下有多少模式串出现在反着的文本串。 不能用动态链表写,开

温姑娘的博客 420

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 分析与总

D_Double's Journey 1630

HDU 3695 Computer Virus on Planet Pandora AC自动机

题目链接http://acm.hdu.edu.cn/showproblem.php?pid=3695题意外星人的程序全是由大小写的英文字母组成,外星人也会写病毒程序。病毒程序也是大小写的英文字母组成,如果病毒是某个程序的子串,或者病毒的反转串是程序的子串,那么就说程序被该病毒感染。给出一个病毒及一个程序,问程序被之中的几个病毒感染了。思路将程序解析成字符串,正反在查询即可。。解析函数写错导致无限WA

chen_minghui的博客 272
上一篇: HDU-3658-矩阵
下一篇: POJ-4047-线段树
walk_up
博客等级 码龄15年 2粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值