病毒侵袭持续中 HDU - 3065

news/2025/1/15 23:24:49/

题目链接

HDU-3065

AC代码

因为没有在文本串字符超出字典树范围之后重置now节点导致一直WAWAWAWA。
要理解板子呀!

#include <cstdio>
#include <cstring>
#include <queue>using namespace std;int const NUM = 5e4 + 10;
int const LEN = 26;
int const N = 2e6 + 6;char str[1010][100];
char buf[N];
int nxt[NUM][LEN], fail[NUM], ed[NUM];
int root, L;
int cnt[NUM];int newCode() {for (int i = 0; i < LEN; i++)nxt[L][i] = -1;ed[L] = 0;return L++;
}void init() {memset(cnt, 0, sizeof(cnt));L = 0;root = newCode();
}int idx(char c) {return c - 'A';
}void insert(char *buf, int n) {int len = strlen(buf);int now = root;for (int i = 0; i < len; i++) {if (nxt[now][idx(buf[i])] == -1)nxt[now][idx(buf[i])] = newCode();now = nxt[now][idx(buf[i])];}ed[now] = n;
}void build() {fail[root] = root;queue<int> q;for (int i = 0; i < LEN; i++) {if (nxt[root][i] == -1) nxt[root][i] = root;else {fail[nxt[root][i]] = root;q.push(nxt[root][i]);}}while (!q.empty()) {int now = q.front();q.pop();for (int i = 0; i < LEN; i++) {if (nxt[now][i] == -1) nxt[now][i] = nxt[fail[now]][i];else {fail[nxt[now][i]] = nxt[fail[now]][i];q.push(nxt[now][i]);}}}
}void query(char *buf) {int len = strlen(buf);int now = root;for (int i = 0; i < len; i++) {if (buf[i] < 'A' || buf[i] > 'Z') {now = root;continue;}now = nxt[now][idx(buf[i])];int tmp = now;while (tmp != root) {if (ed[tmp] != 0)cnt[ed[tmp]] += 1;tmp = fail[tmp];}}
}void print(int len) {for (int i = 1; i <= len; i++) {if (cnt[i] != 0)printf("%s: %d\n", str[i], cnt[i]);}
}int main() {int n;while (scanf("%d", &n) != EOF) {init();for (int i = 1; i <= n; i++) {scanf("%s", str[i]);insert(str[i], i);}build();scanf("%s", buf);query(buf);print(n);}return 0;
}

http://www.ppmy.cn/news/326118.html

相关文章

PS8622 DP转LVDS

DP转LVDS转换器: 1. 1 Lane DP输入,1 Lane LVDS输出 PS8622是一款DP转LVDS的器件。DP信号或eDP信号来自于带GPU的PC机,转换后的LVDS输入到一个显示面板去显示。 2.功能: 1. 使能LVDS显示面板,源视频设备有着DP或eDP接口 2.支持视频格式色深18位 高达1680x1050@60Hz或色深…

IC设计综合常用命令

芯片行业奋战十余年老兵&#xff0c;芯片大厂验证专家&#xff0c;多年面试官经验&#xff0c;面试官一对一助你转行芯片验证&#xff01;更多学习视频关注B站 id:605762016 飞哥_芯 综合命令 dc_shell -f cmd_sysref_sync.tcl &#xff5c; tee sysref_0818.log*0916.log dc_…

01.mipi时序

Video模式又分三种子模式&#xff1a; 1 Non-burst Mode Sync pulses: 在这种模式下&#xff0c;DSI基于各种不同的同步数据包来做数据同步。这种数据包括&#xff1a;重构&#xff0c;时间校准等。更具体的请参考DSI协议标准。 2 Non-burst Mode Sync event: 这种模式和第一…

android开发笔记之android编译过程

第一:执行环境变量的sh脚本: 我们先执行: . build/envsetup.shincluding device/generic/car/vendorsetup.sh including device/generic/mini-emulator-arm64/vendorsetup.sh including device/generic/mini-emulator-armv7-a-neon/vendorsetup.sh including device/generic/…

微软Windows操作系统全面兼容机器人操作系统ROS1和ROS2

微软Windows操作系统全面兼容机器人操作系统ROS1和ROS2 turtlebot2&#xff1a;https://github.com/bfjelds/turtlebot2-win10 文档&#xff1a;https://libraries.io/github/bfjelds/turtlebot2-win10 安装在/opt/ros/melodic/x64文件夹下&#xff0c;依据如下教程即可安装成…

2018年智能机器人技术综合实训专题一系统基础

2018年智能机器人技术综合实训专题一系统基础 此部分对应教材&#xff1a;《ROS机器人项目开发11例》&#xff0c;采用翻转课堂模式&#xff0c;并未按书中章节顺序授课。 请自学第一章&#xff0c;入门ROS机器人应用程序开发&#xff1b;第四章&#xff0c;使用ROS控制嵌入式…

南京观海微电子GH1001 datasheet及应用介绍

datasheethttps://pan.baidu.com/s/1I3GXWsrgPGuTe46UpMlLsw?pwd1234 GH1001支持HD 768分辨率驱动IC。 GH1001 设计可驱动 α-Si、LTPS&IGZO TFT 点阵 LCD&#xff0c;最高可支持分辨率&#xff1a;768RGBx2046 。 Single chip solution for a WXGA α-Si type LCD disp…

【汇总】OpenHarmony轻量系统开发【0】目录和个人感悟

前言 还记得2020年9月OpenHarmony大会后&#xff0c;我开始在社区写了一些OpenHarmony轻量系统开发的文章&#xff0c;基于Hi3861。 转眼已经过去那么久了。 OpenHarmony从过去的1.0版本&#xff0c;演变到了现在的3.1版本。 于是决定重新开启篇章&#xff0c;针对3.0以上的版…