CF710F String Set Queries 题解
字符串?哈希!
容易发现
匹配模板串
注意此算法复杂度基于
#include <cstdio>
#include <cstring>
#include <unordered_map>
#define B 233ll
#define M 1000000007
using namespace std;
char s[300050];
long long b[300050];
int n, m, o, x, z, f[300050], d[300050], r[300050];
unordered_map<int, int> c[650];
int main()
{
scanf("%d", &m);
for (int i = b[0] = 1; i <= 300000; ++i)
b[i] = b[i - 1] * B % M;
while (m--)
{
scanf("%d%s", &o, s + 1);
n = strlen(s + 1);
for (int i = 1; i <= n; ++i)
f[i] = (f[i - 1] * B + s[i]) % M;
switch (o)
{
case 1:
r[x = d[n] ? d[n] : d[n] = ++z] = n;
++c[x][f[n]];
break;
case 2:
--c[d[n]][f[n]];
break;
case 3:
x = 0;
for (int p = 1; p <= z; ++p)
for (int l = 1, k; l + r[p] - 1 <= n; ++l)
x += c[p].count(k = (f[l + r[p] - 1] + M - f[l - 1] * b[r[p]] % M) % M) ? c[p][k] : 0;
printf("%d\n", x);
fflush(stdout);
}
}
return 0;
}
分类:
题解
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具