【HDU5880】Family View(AC自动机)

Trae编程工具Cline插件深度集成与Claude 3.7 API Key高级配置实战 本文详细介绍了如何在Trae编程工具中深度集成Cline插件并配置Claude 3.7 API Key的高级技巧。通过实战案例,展示了如何提升代码补全质量、实现多轮对话记忆及自定义代理设置,特别适合全栈工程师和需要私有化AI服务的团队。文章还涵盖了安装流程、API Key获取方式及企业级部署的最佳实践。 阅读详情

记录一个菜逼的成长。。

题目链接

题目大意:

有n个只包含小写字母的字符串。给你一个字符串T。如果n个字符串里存在字符串在T里,就将这个字符串在T里标记为*。(忽略大小写)

笔记

算是比较裸的AC自动机。
由n个字符串构建AC自动机。
匹配一遍,记录起始位置,然后循环标记即可。

#include <stdio.h>
#include <string.h>
#include <vector>
#include <queue>
#include <utility>
#include <iostream>
#include <algorithm>
using namespace std;
#define pb push_back
#define mp make_pair
#define fi first 
#define se second
#define clr clear()
#define cl(a,b) memset(a,b,sizeof a)
const int maxn = 1000000 + 10;
typedef long long LL;
typedef pair<int,int> PII;
vector<PII>a;
struct Trie
{
    int next[1000010][26],fail[1000010],end[1000010],deep[maxn];
    int root,L;
    int newnode()
    {
        for(int i = 0;i < 26;i++)
            next[L][i] = -1;
        end[L++] = 0;
        return L-1;
    }
    void init()
    {
        L = 0;
        root = newnode();
    }
    void insert(char buf[])
    {
        int len = strlen(buf);
        int now = root;
        for(int i = 0;i < len;i++)
        {
            if(next[now][buf[i]-'a'] == -1)
                next[now][buf[i]-'a'] = newnode();
            now = next[now][buf[i]-'a'];
        }
        end[now]++;
        deep[now] = len;
    }
    void build()
    {
        queue<int>Q;
        fail[root] = root;
        for(int i = 0;i < 26;i++)
            if(next[root][i] == -1)
                next[root][i] = root;
            else
            {
                fail[next[root][i]] = root;
                Q.push(next[root][i]);
            }
        while( !Q.empty() )
        {
            int now = Q.front();
            Q.pop();
            for(int i = 0;i < 26;i++)
                if(next[now][i] == -1)
                    next[now][i] = next[fail[now]][i];
                else
                {
                    fail[next[now][i]]=next[fail[now]][i];
                    Q.push(next[now][i]);
                }
        }
    }
    int query(char buf[])
    {
        int len = strlen(buf);
        int now = root;
        int res = 0;
        for(int i = 0;i < len;i++)
        {
            now = next[now][buf[i]-'a'];
            int temp = now;
            while( temp != root )
            {
                res += end[temp];
                if (end[temp]) {
                  a.pb(mp(i-deep[temp],i));//重点
                }
                temp = fail[temp];
            }
        }
        return res;
    }
}ac;

char str[maxn];
bool vis[maxn];
int main() 
{
  int T;scanf("%d",&T);
  while(T--) {
    ac.init();a.clr;
    int n;scanf("%d\n",&n);
    for (int i = 1; i <= n; i++) {
      gets(str);
      ac.insert(str);
    }
    ac.build();
    gets(str);cl(vis,false);
    for (int i = 0; str[i]; i++) {
      if(isupper(str[i]))vis[i] = true;
      str[i] = tolower(str[i]);
    }
    ac.query(str);
    for (auto x : a) {
      for (int i = x.fi + 1; i <= x.se; i++)
        str[i] = '*';
    }
    for (int i = 0; str[i]; i++) {
      if(vis[i]) {
        if(str[i] != '*')putchar(toupper(str[i]));
        else putchar(str[i]);
      }
      else putchar(str[i]);
    }
    puts("");
  }
  return 0;
}
拼多多Android面试题及参考答案 Android 系统采用分层架构设计,从底层到上层依次为Linux 内核层硬件抽象层(HAL)系统运行时库层应用框架层应用层,共五层。位置:Linux 内核层与系统运行时库层之间,是“硬件与系统的隔离层”。核心作用:屏蔽硬件差异,为上层提供统一的硬件访问接口,解决 Android 开源与硬件厂商闭源的矛盾,具体功能如下:硬件能力抽象:将硬件的具体实现(如不同厂商的摄像头芯片、音频芯片)封装为标准化接口(如Camera HALAudio HAL。 阅读详情

相关推荐

RabbitMq安装

本文详细介绍了在CentOS7系统上离线部署RabbitMQ4.3.2的完整流程。主要内容包括:1)准备RabbitMQ安装包、Erlang依赖和socat网络工具;2)安装系统编译依赖并编译安装Erlang;3)部署RabbitMQ服务,配置环境变量和socat依赖;4)启用Web管理插件并创建管理员账号;5)配置防火墙放行端口;6)设置Systemd开机自启服务;7)提供常用运维命令。文档特别强调离线部署注意事项,包括socat依赖、版本兼容性、账号安全及主机名配置等问题,为生产环境部署提供完整解决方案

sinat_25821779的博客 323

【HDU 5880】Family View(AC自动机)

【HDU 5880】Family View(AC自动机)题目大意:给出n个模式串,一个文本串,把文本串中所有模式串中存在的子串变成’*’后就没写自动机了,这次是理解着写出来的,感觉很不错。 对模式串建自动机,匹配的时候当匹配到一个模式串,标记一下。需要注意的是每一个节点记录一下该节点结尾的最长模式串(也可以说是后缀)这个在建fail树的时候做就行。否则这种数据没法过1 2 abcd bc abc匹

ACMer' 1896

prometheus 从入门到精通(史上最全)

Prometheus(由go语言开发)是一套开源的监控&报警&时间序列(按照时间排序)数据库的组合。因为kubernetes(俗称k8s)的流行带动了prometheus的发展。它可以监控主机,服务,容器,支持多种exporter采集数据,还支持pushgateway进行数据上报,Prometheus性能足够支撑上万台规模的集群。原文链接:https://blog.youkuaiyun.com/qq_45277554/article/details/130917620时间序列数据。

流水_鱼鱼的博客 1万+

HDU5880【AC自动机】

题意: 给出n个字符串,再给出一个字符串,把之前出现过的字符串全部变成* 思路: AC自动机,Trie树上存的值是一个字符串的长度,也就是往前的长度,然后倒着处理一遍。 感想: 第三题AC自动机,本来就是想脱离模板多练练,虽然之前撒比bug错了一大堆,但是收获很多啊。 重要的感想有两个方面: 一: 在我们solve主串的时候: 在通过移动失败指针处理后缀串的时候,在这...

weixin_30314631的博客 190

cosmos-curate工业级视频数据预处理引擎/终端用户指南( end-user-guide)

摘要:Cosmos-Curate是一个用于视频和自动驾驶数据处理的开源工具,提供从本地到集群的完整部署方案。文档针对三类用户:终端用户(配置运行现有管道)、开发者(修改/创建管道)和贡献者(改进代码库)。核心功能包括容器化设计(Docker+NVIDIA工具链)、多平台支持(本地/Slurm/云)、集成HuggingFace/NGC模型,以及可扩展的管道架构。使用需满足硬件(如Ampere架构GPU)和软件(Ubuntu22.04+Python3.10)要求,通过CLI工具构建镜像、下载模型并运行示例管道(

qq_45053161的博客 1202

Claude Code(8):使用 skill-creator 打造属于测试人员的 Skills

本文介绍了如何使用Claude Code的skill-creator工具快速创建测试相关的Skills。skill-creator是一个专门用于创建新Skills的Skill,相比手动创建更高效。文章详细演示了安装skill-creator的步骤,并通过创建"测试计划编写助手"的实战案例,展示了如何通过对话方式定义Skill名称、触发条件和功能需求。skill-creator会自动生成完整的SKILL.md文件和目录结构,用户只需确认即可完成Skill创建。

blues_C的博客 525

HDU 5880 Family View(AC自动机)

Description 给出nnn个模式串和一个文本串,模式串只由小写字母组成,要求把文本串中出现的模式串(不区分大小写)全部转化成∗∗*输出 Input 第一行一整数TTT表示用例组数,每组用例首先输入一整数nnn表示模式串个数,之后输入nnn个只由小写字母组成的模式串,最后输入一个文本串,文本串串长不超过10610610^6,模式串总串长不超过10610610^6 Output 把文...

ZSQ 404

【数据分享】1985-2023 年中国 30m 生长季 NDVI 数据集:刘小平团队力作,Landsat 无缝融合无云产品

中山大学刘小平团队发布1985-2023年中国30m分辨率生长季Landsat NDVI数据集,解决了传统数据的三大痛点:无缝拼接、时间连续和质量可靠。该数据集基于5-9月生长季Landsat影像,通过云检测、多景融合等技术生成,已在GEE平台开放共享。其高分辨率、长时序特性为植被动态监测、LUCC研究等提供重要支撑,在农业、生态保护等领域具有广泛应用价值。

国科大硕士在读,分享Python/GEE/Matlab/R专业代码实践,涵盖数据分析、算法开发与应用技巧等,以代码会友。 1509

HDU5880 Family View(2016青岛网络赛 AC自动机)

题意:将匹配的串用‘*’代替 tips: 1注意内存的使用,据说g++中指针占8字节,c++4字节,所以用g++交会MLE 2 注意这种例子, 12abcdbcabc 故失败指针要一直往下走,否则会丢弃一些串 3 当出现非英文字符时应先将指针指向根节点,否则出现 11cyc,,,,,,,y 时结果为c,,,,,,**(由不止一种Bug造成的),正确的应为c,...

Nobel7889的专栏 249

【LLM评估篇】Ceval | GAIA | MMLU benchmarks

- 一些大模型的评估模型: - 多轮:MTBench - 关注评估:agent bench - 长文本评估:longbench,longeval - 工具调用评估:toolbench - 安全评估:cvalue,safetyprompt等 本文还介绍了其他主流的大模型评估指标等及其使用

发现问题,并解决问题,批判性思维 6946

【ARM AMBA5 CHI 2 -- CHI 链路层详细介绍 】

目前有六个版本的 CHI 协议,CHI-A 是 CHI 协议的第一个版本。它提供了一个传输层,具有减少拥塞的功能。新通道、CHI 术语和组件命名的定义;请求、监听过滤器和缓存状态转换的示例;事务排序、独占访问和分布式虚拟内存(DVM)操作的规则;CHI-B 问题扩展了 CHI-A,但不能直接向后兼容 CHI-A。更大的物理地址宽度;原子事务;DVM 的 VMID 扩展;通道字段、事务结构和可靠性、可用性和可维护性(RAS)特性的描述;

CodingCos的博客 2535

HDU 5880 Family View AC自动机

Family View Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1187    Accepted Submission(s): 234 Problem Description Steam is a digi

窦小雨的小点子 536

ABAP Cloud 开发教程的文章目录

本教程涵盖 ABAP 云端 Client 处理、多租户架构、ABAP Cloud开发、动态编程优化、SQL语法改进等技术主题。最新版本1.0.0(更新至2025-12-12),包含197篇文章,重点文章包括《ABAP Client Handling与隔离机制》《ABAP Platform 2021泛型编程》《SAP BTP ABAP多租户应用开发》等,为开发者提供从基础到进阶的实战指南。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1806

Hdu 5880 Family View AC自动机 水

Family View Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 2182    Accepted Submission(s): 473 Problem Description Steam is a digi

J. Cole 384

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

hdu5880Family View(AC自动机)

Family View Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 707    Accepted Submission(s): 128 Problem Description Steam is a digit

ACMan 606

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

HDU5880 Family View(AC自动机)

链接:http://acm.hdu.edu.cn/showproblem.php?pid=5880 题意:给定N个串,一个长文本,把那N个串在长文本里出现的部分用×代替。 思路:把N个串放到AC自动机上然后在结点标记上串长,接着把长文本放到自动机上去匹配,匹配到了就替换掉。 至于替换的方法,不用暴力的去修改,只要同类似括号匹配的方式打上标记就好了。要注意2种情况的处理 1:   N个串种有

HandsomeHow的博客 610

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

【Ac自动机】hdu 5880 Family View

Link:http://acm.split.hdu.edu.cn/showproblem.php?pid=5880 #include using namespace std; typedef long long LL; const int N = 1000110; int len[N]; int res[N]; struct Aho { struct Node{

学无纸巾 347

hdu 5880 Family View AC自动机

题意:给出一系列的敏感词,如果下面文本以敏感词作为子串,那么输出'*' 思路:简单的AC自动机,如果匹配到当前tire节点是叶子,那么它前面路径字符串都要变为'*" 比赛时看到没什么人做,也就没看题,没想到这么简单... 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5880 #include #include #

zyh 682

HDU 5880 Family View (AC自动机)

题意: 模拟敏感词和谐器,T 组数据,每组数据 N 个子串,一个母串,输出和谐的母串 思路: 母串带空格,用gets就行,用子串的长度做标记,匹配时若匹配到,和谐掉’标记数‘个数个字符就行。 代码: #include #include #include #include #include using namespace std; struct Trie { int ne

DT2131 602

HDU 5880 Family View 好容易MLE的AC自动机 *

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=5880 开结构体,不大好,因为很容易爆空间 额 下面的代码 用的时候就new出来,用完就delete,但还是MLE #include #include #include #include #include #include using namespace std; const int maxn=1

BRCOCOLI的博客 736

HDU 5880 Family View(AC自动机+差分数组)

刚学了AC自动机,那这个练练手,题意很简单,就是用*替换掉敏感的词汇,那么一个val[i]保存单词,dep[i]保存深度。。 每次在文本串上跑AC自动的时候遇到val[i]不为0 的情况就跟dep[i]结合 得到区间单词,差分记录一下就可以了, AC自动机的模板题 #include<bits/stdc++.h> using namespace std; const int M...

ccsu_deer 499

【HDU 5880】 Family View | AC自动机、敏感词屏蔽

题目大意: 给出几个敏感词汇s_i,一个字符串t 需要将t字符串中所有的敏感词汇以*的形式输出 题目思路: AC自动机板子题.. 题目比较典型,博客存储一下。 不懂评论里可以交流 Code: /*** keep hungry and calm CoolGuang!***/ #pragma GCC optimize(2) //#include <bits/stdc++.h> #include<stdio.h> #include<string.h> #inc

一只酷酷光儿的博客 300

HDU - 5880 Family View (AC自动机修改母串)

Family View (AC自动机修改母串) 题目大意:给出一些敏感词,如果在文章中出现的话,用 ‘ * ’ 替代。 解题思路:多模式串匹配问题,在建立字典树的时候标记一下敏感词结尾和长度,然后用主串匹配的时候碰到敏感词就用 ‘ * ’ 替换即可。 Code: #include <iostream> #include <cstdio> #include <cmath> #include <cstring> #include <algorithm>

林黛玉到拔垂杨柳的博客 282

HDU 5880 Family View(AC自动机)

#include #include #include #include using namespace std; const int maxn=1000000+100; char p[maxn]; int nxt[maxn][26],l[maxn],badnode[maxn],pre[maxn],vis[maxn]; int L,root; int newnode(){ for(int i

qq_33901573的博客 250

hdu 5880 Family View——AC自动机

#include &lt;cstdio&gt; #include &lt;cstring&gt; #include &lt;iostream&gt; #include &lt;algorithm&gt; using namespace std; const int maxn = 1e6 + 10; const int sz = 26; char str[maxn]; int interval[m...

hao_zong_yin的博客 374

[HDU 5880] Family View (AC自动机)

链接HDU 5880题意青岛网络赛的题目,其实挺简单的裸题,不知道为什么没看到。。。还好最后申进去了。 给出一些关键词和一个长文本,需要将长文本中出现过关键词的地方用’*’代替。题解AC自动机的裸题,典型的多文本匹配。 在建trie树的时候需要传递关键词的长度len,insert后nd[now]=len。这样在建好自动机匹配的时候可以记录cover[i],表示i位置出现的长度为cover[i]的

mysterious 452
上一篇: 【HDU6183】Color it(线段树)
下一篇: 后缀自动机(SAM)-模板记录/好文推荐
oranges_c
博客等级 码龄10年 30粉丝 216原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值