字符串1:字符串Hash、Trie、Manacher
一、字符串Hash1.时间复杂度O(Σlen)2.思路(1)把字符串转化为一个数字(2)对数字进行取模(除数为质数)(3)为保证准确性进行两次上述操作后构成数对塞入集合。3.代码如下#include bits/stdc.h #define int long long #define B1 233 #define B2 191 #define mod1 10000000007 #define mod2 10000000009 using namespace std; int N; string s; setpairint, int st; int gethash(string s, int B, int mod) { int ans 0; for (int i 0; i s.size(); i) { ans (ans * B s[i]) % mod; } return ans; } signed main() { scanf(%lld, N); while (N--) { cin s; st.insert({gethash(s, B1, mod1), gethash(s, B2, mod2)}); } printf(%lld, (int)(st.size())); }二、Trie1.时间复杂度O(Σlen)2.思路(1)每次更新时一直找到与新字符串的前缀不相同的位置然后在后面按后缀依次排开;(2)该过程中每次访问到一个节点就将以至该节点为止为前缀的串的个数加一(3)查询时找到所输入字符串前缀在Trie中的末端输出所记录的串的个数。3.代码如下#include bits/stdc.h #define int long long using namespace std; int T, n, q, idx, ans[3000010], a[3000010][62]; string s; int sep(char c) { if (c 0 c 9) return c - 0; else if (c a c z) return c - a 10; else return c - A 36; } void insert(string s) { int pos 0; for (int i 0; i (int) s.size(); i) { int c sep(s[i]); if (!a[pos][c]) a[pos][c] idx; pos a[pos][c]; ans[pos]; } } int query(string s) { int pos 0; for (int i 0; i (int) s.size(); i) { int c sep(s[i]); if (!a[pos][c]) return 0; pos a[pos][c]; } return ans[pos]; } signed main() { scanf(%lld, T); while (T--) { idx 0; scanf(%lld%lld, n, q); for (int i 1; i n; i) { cin s; insert(s); } for (int i 1; i q; i) { cin s; printf(%lld\n, query(s)); } for (int i 0; i idx; i) for (int j 0; j 62; j) a[i][j] 0; for (int i 0; i idx; i) ans[i] 0; } }三、Manacher1.时间复杂度O(n)2.思路(1)将原串中首尾和每两个字符之间随意插一个符号避免回文串长度为偶的讨论(2)维护一个maxr和相应的mid表示之前所扩展到的所有回文子串的最右边及其对应的中心点(3)对于每次遍历如果该位置在maxr左边则将其对应的左端的长度与该位置到maxr的长度取最小值如果在右边则初始化为1(4)扩展更新。3.代码如下#include bits/stdc.h #define int long long using namespace std; string s1, s; int n, maxr 0, mid 0, maxx 0, p[22000010]; signed main() { cin s1; s #; for (int i 0; i (int)s1.size(); i) { s.push_back(s1[i]); s.push_back(#); } n (int) s.size(); for (int i 0; i n; i) { if (maxr i) p[i] min(p[mid * 2 - i], maxr - i 1); else p[i] 1; while (i - p[i] 0 i p[i] n s[i - p[i]] s[i p[i]]) p[i]; if (i p[i] - 1 maxr) { maxr i p[i] - 1; mid i; } maxx max(maxx, p[i] * 2 - 1); } printf(%lld, maxx / 2); }

相关新闻

FAT32、NTFS、exFAT 终极对决!

FAT32、NTFS、exFAT 终极对决!

FAT32、NTFS、exFAT 终极对决! 每次插入U盘,系统弹出“是否格式化”,面对FAT32、NTFS、exFAT三个选项,你是不是闭着眼睛随便选?其实选错格式,轻则传输慢如蜗牛,重则大文件无法拷贝,甚…

2026/10/1 18:57:46 阅读更多 →
AI尽调相比人工尽调有什么优势

AI尽调相比人工尽调有什么优势

一、穿透式监管倒逼尽调模式智能化升级当前国资委推行穿透式监管,要求国央企对各级子企业、供应商、经销商等全部合作方开展常态化动态尽调、审计留痕,且落实终身追责机制,企业对合作方风险核查的全面性、时效性、可追溯性要求大幅提升。传统…

2026/9/25 22:16:11 阅读更多 →
远程协作实战指南:程序员接单后如何把外包项目跑顺

远程协作实战指南:程序员接单后如何把外包项目跑顺

过去几年,远程接外包逐渐从少数自由职业者的选择变成一种常态化的工作方式。无论是全职远程程序员接单,还是团队协作跨时区交付项目,远程协作对工具、流程和沟通节奏的要求都比现场办公更高。笔者从工具栈、同步机制、交付节奏、常见坑四个维…

2026/9/25 3:29:06 阅读更多 →

最新新闻

β-环糊精组合修饰全解析:PEG链连接FITC、Biotin、DBCO的设计与应用

β-环糊精组合修饰全解析:PEG链连接FITC、Biotin、DBCO的设计与应用

拿到“PEG-荧光素修饰β-环糊精,β-CD-PEG-FITC,β-CD-PEG-Biotin,DBCO-PEG修饰β-环糊精,β-CD-DBCO-PEG”这一串产品名时,多数人的第一反应是“这到底是个东西还是好几个东西”。其实这是一类典型的组合修饰型环糊精…

2026/10/1 18:57:55 阅读更多 →
C++工厂方法模式实战:从日志系统到调试排查全解

C++工厂方法模式实战:从日志系统到调试排查全解

聊到C里的创建型设计模式,工厂方法模式(Factory Method)是我在工程实践中用得最频繁,也最容易被低估的一个。早些年我在面试候选人的时候,几乎每次都会问到一个场景:一段代码里有七八个if分支去创建不同类型…

2026/10/1 18:57:55 阅读更多 →
Madeira 整合 Wine、FEX-Emu 与 DXMT:ARM 平台运行 x86-64 Windows 程序实战

Madeira 整合 Wine、FEX-Emu 与 DXMT:ARM 平台运行 x86-64 Windows 程序实战

1. 从“Madeira”这个名字说起:它到底想解决什么问题 第一次看到“Madeira”这个项目名,很多人会以为是某个葡萄酒产区的工具,或者干脆是个地名相关的应用。但结合热搜词里的 Wine、FEX-Emu、DXMT、x86-64 这几个关键词,方向就清晰…

2026/10/1 18:57:55 阅读更多 →
声音克隆 + 文本转语音:narrator-ai-cli-skill 独立任务实战,AI 解说大师配音两大技能

声音克隆 + 文本转语音:narrator-ai-cli-skill 独立任务实战,AI 解说大师配音两大技能

声音克隆 文本转语音:narrator-ai-cli-skill 独立任务实战,AI 解说大师配音两大技能 【免费下载链接】narrator-ai-cli-skill AI 解说大师 — Agent skill;封装 narrator-ai-cli 供 Claude/Codex 等工具调用 项目地址: https://gitcode.co…

2026/10/1 18:57:55 阅读更多 →
Windows英文系统中文显示异常的注册表级修复方案

Windows英文系统中文显示异常的注册表级修复方案

1. 问题本质与真实场景还原这个问题我从2015年就开始反复处理,不是什么新毛病,但每次Windows大版本更新(比如1809、20H2、22H2)它就准时回来“打卡”。核心现象非常典型:你把系统语言从中文改成英文(比如为…

2026/10/1 18:57:55 阅读更多 →
C++桥接模式四种实现:从指针到std::variant的工程实践

C++桥接模式四种实现:从指针到std::variant的工程实践

从"类和类纠缠"到"接口和实现各过各的"做C开发这么多年,我一直觉得设计模式这事儿最怕"背名字"。桥接模式(Bridge Pattern)就是个典型——很多人能把定义背出来:"将抽象部分与实现部分分离&am…

2026/10/1 18:56:55 阅读更多 →

日新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:01:17 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/30 13:14:22 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/30 18:13:06 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/30 13:14:49 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:01:17 阅读更多 →