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

题目描述

福尔摩斯从 X 星收到一份资料,全部是小写字母组成。

他的助手提供了另一份资料:许多长度为 8 的密码列表。

福尔摩斯发现,这些密码是被打乱后隐藏在先前那份资料中的。

请你编写一个程序,从第一份资料中搜索可能隐藏密码的位置。要考虑密码的所有排列可能性。

输入格式

输入第一行:一个字符串 s,全部由小写字母组成,长度小于 1024×1024。

紧接着一行是一个整数 n, 表示以下有 n 行密码,1≤n≤1000。

紧接着是 n 行字符串,都是小写字母组成,长度都为 8。

输出格式

一个整数,表示每行密码的所有排列在 s 中匹配次数的总和。

输入输出样例

输入 #1

aaaabbbbaabbcccc
2
aaaabbbb
abcabccc

输出 #1

4

说明/提示

第一个密码匹配了 3 次,第二个密码匹配了 1 次,一共 4 次。

时限 3 秒, 512M。蓝桥杯 2015 年第六届国赛

 解题思路

这题可以使用字符串哈希,因为不用考虑字符顺序,可以先统计一个字符串中每个字符出现的次数,然后使用使用进制哈希将字符串转换为数字表示,具体操作看代码;

#include<stdio.h>
#include<string.h>
char a[1100000], b[9];
long long haxi[1100000], hx[27], left = 0, right = 8;
long long base = 131, mod = 9223372036854775807, sum = 0;
long long charge()//哈希函数
{long long ans = 0;for (int i = 1; i <= 26; i++)ans = (ans * base + hx[i]) % mod;return ans;
}
int main()
{int i, j, n;scanf("%s", a);//输入字符串int k = strlen(a);for (j = 0; j <= 7; j++)hx[a[j] - 'a' + 1]++;haxi[0] = charge();while (right < k)//k个字符字符可以从左到右组成k-7个字符串转换为的数字{hx[a[right] - 'a' + 1]++;hx[a[left] - 'a' + 1]--;left++; right++;haxi[left] = charge();}scanf("%d", &n);while (n--){scanf("%s", b);for (i = 1; i <= 26; i++)//初始化hx[i] = 0;for (i = 0; i <= 7; i++)hx[b[i] - 'a' + 1]++;long long ss = charge();for (i = 0; i <= k - 8; i++)//统计数量if (ss == haxi[i])sum++;}printf("%lld", sum);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/688954.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

K8S更新部署docker的两种方法举例

前提条件 imagePullPolicy: Always 方法1&#xff1a;删除更新法 test-project为命名空间 --删除所有asp-svc下面的pod,这会导致从新拉取镜像 kubectl delete pods -l appasp-svc -n test-project --删除指定的pod&#xff0c;这会导致从新拉取镜像 kubectl delete pod …

JSON协议详解、语法及应用

文章目录 一、什么是JSON二、JSON协议结构协议结构包括要素JSON语法规则JSON的协议结构示例 三、JSON的特点四、JSON常见应用场景 一、什么是JSON JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式&#xff0c;它以易于阅读和编写的文本格式…

MVC 、DDD(domain-driven design,软件主动学习业务)、中台、Java SPI(Service Provider Interface)

文章目录 引言I 单体架构DDD实现版本1.1 核心概念1.2 DDD四层架构规范1.3 案例1.4 请求转发流程II 领域服务调用2.1 菱形对称架构2.2 中台III Java SPI3.1 概念3.2 实现原理3.3 例子:本地SPI找服务see alsojava -cp<

Linux第60步_“buildroot”构建根文件系统第2步_配置“buildroot下的busybox”并测试“buildroot”生成的根文件系统

1、查看“buildroot下的busybox”安装路径 打开终端 输入“ls回车” 输入“cd linux回车/”&#xff0c;切换到到“linux”目录 输入“ls回车”&#xff0c;查看“linux”目录下的文件和文件夹 输入“cd buildroot/回车”&#xff0c;切换到到“buildroot”目录 输入“ls…

MySQL的 4 种连接查询

目录 一、内连接&#xff08;INNER JOIN) 二、外连接&#xff08;LEFT JOIN、RIGHT JOIN 和 FULL JOIN&#xff09; 三、交叉连接&#xff08;CROSS JOIN&#xff09; 四、自连接 在 MySQL 中&#xff0c;常见的连接查询有四种&#xff1a;内连接&#xff08;INNER JOIN&am…

MyBatisPlus 整合 SpringBoot 遇见的问题

【异常】&#xff1a;Cause: java.sql.SQLSyntaxErrorException: Unknown column ‘udf1’ in ‘field list’… SQL: SELECT id,oper_id,btch_id,udf1, FROM scan_cyber Cause: java.sql.SQLSyntaxErrorException: Unknown column ‘udf1’ in ‘field list’; ,"messag…

【Web】CTFSHOW java反序列化刷题记录(部分)

目录 web846 web847 web848 web849 web850 web856 web857 web858 web846 直接拿URLDNS链子打就行 import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.ObjectOutput; import java.io.ObjectOutputStream; import java.lang.reflect.F…

Eclipse - Switch Workspace

Eclipse - Switch Workspace References Switch Workspace References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/

用GPT-4开启“人类宝藏”

“GPT-4开启人类宝藏”意味着下面几个层面的含义&#xff1a; 知识与信息的访问&#xff1a;GPT-4作为一款强大的语言模型&#xff0c;通过学习海量的数据和信息资源&#xff0c;可以近乎实时地提供人类历史积累的知识、经验与智慧。用户可以通过询问或交互方式获取这些信息&am…

数据库所在服务器磁盘满了怎么办?

大家好&#xff0c;我是G探险者。 给大家拜个晚年哈&#xff0c;节后上班第一天&#xff0c;打开电脑&#xff0c;发现数据库服务器连不上了。 幸亏&#xff0c;节后第一天上班的人不太多&#xff0c;领导还没来&#xff0c;我一番鼓捣解决了这个问题。 所以做个总结&#xff0…

Linux网络----防火墙

一、安全技术和防火墙 1、安全技术 入侵检测系统&#xff08;Intrusion Detection Systems&#xff09;&#xff1a;特点是不阻断任何网络访问&#xff0c;量化、定位来自内外网络的威胁情况&#xff0c;主要以提供报警和事后监督为主&#xff0c;提供有针对性的指导措施和安…

【c++基础】合影效果

说明 小明和朋友们去爬香山&#xff0c;为美丽的景色所陶醉&#xff0c;想合影留念。如果他们站成一排&#xff0c;男生全部在左&#xff08;从拍照者的角度&#xff09;&#xff0c;并按照从矮到高的顺序从左到右排&#xff0c;女生全部在右&#xff0c;并按照从高到矮的顺序…

unity学习(19)——客户端与服务器合力完成注册功能(1)入门准备

逆向服务器用了三天的时间&#xff0c;但此时觉得一切都值&#xff0c;又可以继续学习了。 服务器中登录请求和注册请求由command变量进行区分&#xff0c;上一层的type变量都是login。 public void process(Session session, SocketModel model) {switch (model.Command){ca…

Cannot resolve symbol ‘IWXAPI‘

问题 Android 集成 微信登录报错 Cannot resolve symbol IWXAPI详细问题 笔者在App的build.gradle中已添加相关依赖&#xff0c;并完成Sync gradle操作。 笔者Project的build.gradle核心代码 buildscript {repositories {jcenter() // 原有 jCenter 引用可继续保留…

通过MetricsAPI监控pod资源使用情况(k8s资源监控,java)

1. 目的&#xff1a;简单监控pod 我想使用java监控k8s pod的资源的简单使用情况&#xff0c;但是k8s内部并没有采集资源的实现。 但是k8s提供了一套k8s的对接标准&#xff0c;只要适配这套标准&#xff0c;就可以通过kubelet采集资源数据&#xff0c;并且通过k8s api服务器输出…

Java集合篇之深度解析Queue,单端队列、双端队列、优先级队列、阻塞队列

写在开头 队列是Java中的一个集合接口&#xff0c;之前的文章已经讲解了List和Set&#xff0c;那么今天就来唠一唠它吧。队列的特点&#xff1a;存储的元素是有序的、可重复的。 队列的两大接口Queue vs Deque Queue 是单端队列&#xff0c;只能从一端插入元素&#xff0c;另…

Linux shell 命令中nohup 、、重定向的使用

一、nohup 和 & 使用方法 1.1、 nohup &#xff08;不挂断&#xff09; nohup 是 no hung up 的缩写&#xff0c;意思是不挂断 。 使用 Xshell 等Linux 客户端工具&#xff0c;远程执行 Linux 脚本时&#xff0c;有时候会由于网络问题&#xff0c;导致客户端失去连接&…

使用CompletableFuture在主线程捕获子线程异常

场景&#xff1a;我们使用线程池的时候&#xff0c;假如说某个线程出现了异常此时我们需要将异常捕获打印出相应的异常日志 这个时候就可以用到CompletableFuture的exceptionally方法&#xff0c;其作用是返回一个新的CompletableFuture&#xff0c;如果原CompletableFuture以…

电路设计(20)——数字电子钟的multism仿真

1.设计要求 使用数字芯片&#xff0c;设计一个电子钟&#xff0c;用数码管显示&#xff0c;可以显示星期&#xff0c;时、分、秒&#xff0c;可以有按键校准时间。有整点报警功能。 2.设计电路 设计好的multism电路图如下所示 3.芯片介绍 时基脉冲使用555芯片产生。在仿真里面…

eNSP学习——RSTP基础配置

目录 知识储备 实验内容: 实验目的: 实验步骤: 实验拓扑 实验编址 MAC地址表 实验步骤 一、基本配置 二、配置RSTP基本功能 三、配置边缘端口 四、查看备份端口状态 RSTP协议是对STP的升级,它重新划定端口的角色及状态,使用更快速的握手协商机制,降低了收敛…