当前位置: 首页 > news >正文

P8630 [蓝桥杯 2015 国 B] 密文搜索

P8630 [蓝桥杯 2015 国 B] 密文搜索 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)icon-default.png?t=N7T8https://www.luogu.com.cn/problem/P8630

题目分析

        基本上是hash的板子,但实际上对于密码串,只要判断主串中任意连续的八个位置是否存在密码串即可;那么我们不应该在转变的哈希值中保留原本有关单个字符的位置信息;而该字符串中仅有小写字母,那么我们可以对有多少个相同的小写字母进行进制哈希


代码示例

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ull = unsigned long long;
const int base = 131;
const int N = 1e5 + 10;char s[N], s1[N];
ull t[140];//字母信息
ull a[N]; //主串的字串哈希值ull gets() {int hash = 1;for(int i = 'a'; i <= 'z'; i++) hash = hash * base + t[i];return hash;
}int main() {ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);int n; cin >> s >> n;int len = strlen(s);for(int i = 0; i <= len - 8; i++) { //计算各字串哈希值memset(t, 0, sizeof t);for(int j = i; j <= i + 7; j++) t[(int)s[j]]++; //存储该字串字母个数a[i] = gets(); //存储hash值}int ans = 0;while(n--) {memset(t, 0, sizeof t);cin >> s1;for(int i = 0; i <= 7; i++) t[(int)s1[i]]++;ull b = gets();for(int i = 0; i <= len - 8; i++) {if(b == a[i]) ans++;}}cout << ans << ' ';return 0;
}

http://www.lryc.cn/news/304381.html

相关文章:

  • Electron实战之环境搭建
  • 【0259】inval.h/inval.c的理解
  • 力扣爆刷第77天--动态规划一网打尽打家劫舍问题
  • 深入理解C语言(5):程序环境和预处理详解
  • ESP8266智能家居(3)——单片机数据发送到mqtt服务器
  • lvm逻辑卷创建raid阵列(不常用)—— 筑梦之路
  • LayUI发送Ajax请求
  • 平时积累的FPGA知识点(10)
  • 使用Streamlit构建纯LLM Chatbot WebUI傻瓜教程
  • 电脑死机卡住怎么办 电脑卡住鼠标也点不动的解决方法
  • RAG 语义分块实践
  • 12 Autosar_SWS_MemoryMapping.pdf解读
  • 【Linux取经路】文件系统之缓冲区
  • 华为OD机试真题-查找接口成功率最优时间段-2023年OD统一考试(C卷)--Python3--开源
  • 缓存篇—缓存雪崩、缓存击穿、缓存穿透
  • Python实现视频转音频、音频转文本的最佳方法
  • 阿里云SSL免费证书到期自动申请部署程序
  • Vue全局事件防止重复点击(等待请求)【进阶版】
  • C#程序反编译经验总结
  • Android系统启动流程
  • Flask——基于python完整实现客户端和服务器后端流式请求及响应
  • crmeb多门店商城系统二次开发 增加车辆车牌搜索功能、车辆公里数
  • 深度好文|关于人类智能与自主系统
  • 防火墙内容安全笔记
  • 应用于温度报警器中的高精度温度传感芯片
  • 微信小程序swiper 视频中间大,两边小,轮播滑到中间视频自动播放组件教程
  • ARM服务器上部署zookeeper集群
  • 利用Ubuntu22.04启动U盘对电脑磁盘进行格式化
  • Nginx基础入门
  • 分布式和微服务