当前位置:网站首页>牛客 - 鼠标的天选(字符串哈希)
牛客 - 鼠标的天选(字符串哈希)
2022-08-03 07:59:00 【GHOSTANDBREAD】
题目链接:https://ac.nowcoder.com/acm/contest/38305/F
思路:
简单的字符串匹配问题,可以用 KMP,这里用的是字符串哈希
代码:
#include<bits/stdc++.h>
using namespace std;
#define endl "\n"
typedef unsigned long long ull;
const int P = 131, N = 1e4 + 10;
ull h[N], p[N];
int res;
ull get(int l, int r) {
return h[r] - h[l - 1] * p[r - l + 1];
}
int main() {
ios::sync_with_stdio(false);
cout.tie(0);
int n;
cin >> n;
ull s1h = 0;
string s1 = "month";
for(int i = 1; i <= 5; i ++) s1h = s1h * P + s1[i - 1];
while(n --) {
string s;
cin >> s;
if(s.size() < 5) continue;
memset(h, 0, sizeof h);
memset(p, 0, sizeof p);
p[0] = 1;
for(int i = 1; i <= s.size(); i ++) {
p[i] = p[i - 1] * P;
h[i] = h[i - 1] * P + s[i - 1];
}
for(int i = 1; i <= s.size() - 5 + 1; i ++) {
if(get(i, i + 5 - 1) == s1h) {
res ++;
break;
}
}
}
cout << res;
return 0;
}
边栏推荐
猜你喜欢
随机推荐
DeFi明斯基时刻:压力测试与启示
Docker启动mysql
sqlite date field plus one day
工控机防勒索病毒浅析
如何使用电子邮件营销在五个步骤中增加产品评论
Redis的基础与django使用redis
Evaluate:huggingface评价指标模块入门详细介绍
VR全景市场拓展技巧之“拓客宝典”
mysql系统变量与状态变量
基于SSM开发的的小区物业管理系统小程序源码
Windows安装MySQL(MIS)
ArcEngine (1) Loading vector data
sqlite 日期字段加一天
timestamp
【云原生--Kubernetes】Pod容器与镜像拉取策略
002-字段不为null
Karatsuba大数乘法的Verilog实现
《21天精通TypeScript-5》类型注解与原始类型
内存模型之有序性
用云机器/虚拟机架设方舟游戏?








