Oulipo 【POJ - 3461】【双值哈希】

2023-11-06

题目链接

题意:给你两个字符串,前一个是小字符串,后一个是大的字符串,问你,大的字符串中有几组可以与小的字符串相等的子字符串。

此题其实不用双值哈希好像也可以的,但为了确保A就敲了个双值哈希,我们想把字符串的形式用数的值来表示,那么,我们可以用到哈希来转换它,而双值哈希的目的就是为了减少被Hack的可能性。

完整代码:

#include <iostream>
#include <cstdio>
#include <cmath>
#include <string>
#include <cstring>
#include <algorithm>
#include <limits>
#include <vector>
#include <stack>
#include <queue>
#include <set>
#include <map>
#define lowbit(x) ( x&(-x) )
#define pi 3.141592653589793
#define e 2.718281828459045
using namespace std;
typedef unsigned long long ull;
typedef long long ll;
const ull Hash=1e8+7, Hash2=1e8+5;
const int maxN=1e4+5;
char a[maxN], b[maxN*100];
ll al, bl, ans;
void solve()
{
    if(al>bl) return;
    ull hash_a=0, hash_b=0, hash_a_1=0, hash_b_1=0, Basic=1, Basic2=1;;
    for(int i=0; i<al; i++)
    {
        Basic*=Hash;
        Basic2*=Hash2;
        hash_a=hash_a*Hash+a[i];    hash_a_1=hash_a_1*Hash2+a[i];
        hash_b=hash_b*Hash+b[i];    hash_b_1=hash_b_1*Hash2+b[i];
    }
    for(int i=0; i+al<=bl; i++)
    {
        if(hash_a==hash_b && hash_a_1==hash_b_1) ans++;
        hash_b=hash_b*Hash-Basic*b[i]+b[i+al];
        hash_b_1=hash_b_1*Hash2-Basic2*b[i]+b[i+al];
    }
}
int main()
{
    int T;  scanf("%d", &T);
    while(T--)
    {
        ans=0;
        getchar();
        scanf("%s", a);
        getchar();
        scanf("%s", b);
        al=strlen(a);   bl=strlen(b);
        solve();
        printf("%lld\n", ans);
    }
    return 0;
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Oulipo 【POJ - 3461】【双值哈希】 的相关文章

  • Codeforces Round #291 (Div. 2)

    题目链接contest 514 A Chewba ca and Number 不允许有前导零 所以如果第一位是9的话 需要特别考虑 一开始理解错了题意 又WA了呜呜呜 include
  • 什么是哈希算法?

    哈希算法的基本含义 哈希是密码学的基础 理解哈希是理解数字签名和加密通信等技术的必要前提 哈希 英文是 hash 本来意思是 切碎并搅拌 有一种食物就叫 Hash 就是把食材切碎并搅拌一下做成的 哈希函数的运算结果就是哈希值 通常简称为哈希
  • [SDOI2007]游戏【哈希+DAG拓扑】

    题目链接 先通过哈希确定点 这里我使用的是双值哈希 然后利用哈希判断可以和前面的出现的点如何链接 之后构造出来的图一定是一副DAG图 有向无环图 所以直接拓扑排序DP即可 include
  • 树的遍历(bfs+递归)

    题目描述 一个二叉树 树中每个节点的权值互不相同 现在给出它的后序遍历和中序遍历 请你输出它的层序遍历 输入描述 第一行包含整数 N 表示二叉树的节点数 第二行包含 N 个整数 表示二叉树的后序遍历 第三行包含 N个整数 表示二叉树的中序遍
  • 你了解这些算法吗?SHA256、RIPEMD-160、DES、AES、RSA、ECC

    一 HASH算法 哈希散列算法和哈希摘要算法都叫做哈希算法 1 概念 把一段任意长度的数据变成均匀分布固定长度的数据 反之不可以 Hash不可逆 在任何电脑 手机 或者笔算Hash值都是一样的 y Hash x 已知x可以得到y 反之不可以
  • Merkle树介绍

    默克尔树 Merkle树 又叫哈希树 是区块链数据存储运用到的一个重要的技术算法 简单来说 哈希树 默克尔树 中 每个节点都标有一个数据块的加密哈希值 哈希树可以用来验证任何一种在计算机中和计算机之间存储 处理和传输的数据 它们可以确保在点
  • Windows的密码生成算法——NTLM算法破解

    文章目录 方法一 Python代码暴力破解 方法二 hashcat工具破解 NTLM CDABE1D16CE42A13B8A9982888F3E3BE hint 密码长度不超过5 数字和符号组成 Windows下NTLM Hash生成原理
  • 第四讲. 经典算法之哈希映射

    第四讲 经典算法之哈希映射 1 简介 2 从一个简单例题开始 3 哈希中的碰撞冲突 3 1 线性探测法 3 2 链地址法 3 3 再哈希法 3 4 4 哈希函数的设计 4 1 更大的哈希表 4 2 更好的哈希运算 5 最后说几句 1 简介
  • 哈希学习简介

    一 背景介绍 1 首先介绍一下最近邻搜索 最近邻搜索问题 也叫相似性搜索 近似搜索 是从给定数据库中找到里查询点最近的点集的问题 给定一个点集 以及一个查询点q 需要找到离q最近的点的集合 在大规模高维度空间的情况下 这个问题就变得非常难
  • 2021-05-28

    什么是散列表 散列表 散列表 Hash table 也叫哈希表 是根据键 Key 而直接访问在内存存储位置的数据结构 也就是说 它通过计算一个关于键值的函数 将所需查询的数据映射到表中一个位置来访问记录 这加快了查找速度 这个映射函数称做散
  • unordered_map的哈希HASH重载——举例unordered_map与pair联合使用

    有些时候 为了图省力 我们没准会这样的调用一个函数 unordered map lt pair
  • MySQL索引数据结构hash解析

    Hash 对索引的key进行一次hash计算就可以定位出数据存储的位置 很多时候Hash索引要比B 树索引更高效 仅能满足 IN 不支持范围查询 哈希表这种结构适用于只有等值查询的场景 比如 Memcached 及其他一些 NoSQL 引擎
  • 哈希(4) - 求两个链表的交集以及并集

    目录 1 简单方法 2 使用归并排序 3 使用哈希 给定两个链表 求它们的交集 intersection 以及并集 union 用于输出的list中的元素顺序可不予考虑 例子 输入下面两个链表 list1 10 gt 15 gt 4 gt
  • Tree-String Problem 【CodeForces - 291E】【倍增(LCA)+哈希】

    题目链接 题意 给你N个点的树 树上的边的权值是一个自上往下的字符串 然后我们再给出一个字符串 是模式串 我们现在想知道模式串在树上的出现次数 譬如说样例 我们查找的是aba 它在1 4这条链上出现了2次 在1 5上出现1次 在2 3上出现
  • 哈希及其应用(字典,加密等)

    一 名词说明 Hash 一般翻译做散列 杂凑 或音译为哈希 是把任意长度的输入 又叫做预映射pre image 通过散列算法变换成固定长度的输出 该输出就是散列值 这种转换是一种压缩映射 也就是 散列值的空间通常远小于输入的空间 不同的输入
  • ​LeetCode刷题实战267:回文排列II

    算法的重要性 我就不多说了吧 想去大厂 就必须要经过基础知识和业务逻辑面试 算法面试 所以 为了提高大家的算法能力 这个公众号后续每天带大家做一道算法题 题目就从LeetCode上面选 今天和大家聊的问题叫做 回文排列II 我们先来看题面
  • 密码学原语如何应用?解析单向哈希的妙用|第9论

    作者 廖飞强 来源 微众银行区块链 隐私数据如何验明真伪 区块链数据何以可信 如何快速检验海量数据是否被篡改 单向哈希在其中起到了什么作用 隐私数据的价值很大程度上源自其真实性 如何防止数据被恶意篡改 是隐私保护方案设计中不可忽视的关键目标
  • ​LeetCode刷题实战33:搜索旋转排序数组

    来源 https www cnblogs com techflow p 12441002 html 算法的重要性 我就不多说了吧 想去大厂 就必须要经过基础知识和业务逻辑面试 算法面试 所以 为了提高大家的算法能力 这个公众号后续每天带大家
  • HashMap中为何X % length = X & (length - 1)(求余%和与运算&转换问题)

    目录 一 引出问题 二 结论 三 分析过程 总结 一 引出问题 在前面讲解 HashMap 的源码实现时 有如下几点 初始容量为 1 lt lt 4 也就是24 16 负载因子是0 75 当存入HashMap的元素占比超过整个容量的75 时
  • 哈希桶——开放定址法

    哈希表的迭代器 迭代器模板介绍 template

随机推荐

  • HIVE中关于collect_set与explode函数妙用

    hive的复合数据类型 hive中的列支持使用三类复杂的集合数据类型 即 array map及struct 这些类型的名称是保留字 具体用法可参见该篇博文 里面有关于三类基本集合数据类型的操作实例 注 map中可嵌套array类型 例如 定
  • openwrt中samba及ftp服务器设置

    1 挂载点设置 U盘或硬盘格式化为exfat或ext4 挂载点自定义为 mnt sda1 并记得勾 上启用挂载项 2 samba设置 3 ftp设置 新手折腾很久 只会最简单的设置 还没完全搞明白但能用root登录使用了 但自定义用户和匿名
  • Linux下Qt程序运行时找不到so的解决办法

    一 全局性设置 将so放入相应的系统lib目录 修改环境变量 在环境变量中添加so所在路径 修改一些文件 在其中指定so所在路径 大概有上面的这3种方式 就不详细说了 相信大家都清楚 二 指定编译选项 上面介绍的方式 无一例外 都需要修改环
  • vulnhub-lampiao

    lampiao 1 信息收集 nmap p 192 168 14 189 dirb http 192 168 14 189 1898 X txt php 发现更新日志文件CHANGLOG txt 访问更新日志文件CHANGELOG txt
  • iOS 15 适配踩坑:NavigationBar、UITabBar失效问题

    苹果前两天推出了iOS 15 秋天都等不及 相关链接 ios 15 0 适配问题 NavigationBar和UITabBar失效问题 Xcode 13 beta版 iOS 15 beta 3的系统 除了客户提出的问题 自己还发现了两处UI
  • python常用的类间关系

    1 类之间的关系 1 1 定义 1 2 例子 2 定义可访问性 2 1 定义 2 2 例子 附录 1 类之间的关系 1 1 定义 简单的说 类和类之间的关系有三种 is a has a和use a关系 is a关系也叫继承或泛化 比如学生和
  • 《软件测试的艺术》第七章 可用性(或用户体验)测试

    软件测试的艺术 第七章 可用性 或用户体验 测试 7 0 前言 7 1 可用性测试基本要素 7 2 可用性测试流程 7 2 1 测试用户的选择 7 2 2 需要多少用户进行测试 7 2 3 数据采集方法 7 2 4 可用性调查问卷 7 2
  • 网页使用jssdk微信分享报错

    网页使用jssdk微信分享报错 显示找不到文件 jssdk php文件如下
  • 判断字符串是否以 endStr 为结尾

    String prototype endWith function endStr 判断字符串以 endStr 为结尾 let d this length endStr length return d gt 0 this lastIndexO
  • ubuntu16.04 从源码编译安装caffe(纯CPU版)

    需要做caffe在嵌入式的移植 决定先在X86上理清所有依赖包关系 再做交叉编译 由于目的是用在嵌入式 暂不支持GPU 1 boost 官网 http www boost org Caffe 中主要使用了Boost 的智能指针 新版v1 6
  • python中的字典(Dictionary)

    python中的字典 Dictionary 在Python中 字典 Dictionary 是一种键 值对的无序集合 用于存储和查找具有唯一键的元素 字典提供了一个高效的方式来根据键访问和操作值 特点 字典是无序的 其中的元素没有固定的顺序
  • 51单片机入门——单片机最小系统

    单片机最小系统 1 什么是最小系统 2 最小系统的三要素 2 1 电源 2 2 晶振 2 3 复位电路 2 3 1 外部RST引脚复位 2 3 2 软件复位 2 3 3 上电复位 掉电复位 2 3 4 看门狗复位 2 3 5 冷启动复位和热
  • 从小学开始学机器人编程教育的好处

    不过对于绝大多数孩子来说 情况也许并不是这样 他们学习机器人编程并非一定要成为程序员 更不一定要为将来创业做准备 但是他们同样能从编程学习中获益 获得多方面的思维训练 格物斯坦表示 通过学习编程 除了通常被提及的一些如促进学科知识学习 了解
  • C语言经典100例题(46)--宏#define命令练习(1)

    目录 题目 问题分析 代码 运行结果 题目 宏 define命令练习 1 问题分析 define是宏定义 程序在预处理阶段将用define定义的内容进行了 替换 因此在程序运行时 常量表中并没有用define定义的常量 系统不为它分配内存
  • Navicat 无法连接 MySQL 怎么办?

    本文背景 Navicat 是图形化操作 MySQL 的强大工具 但是当数据库的服务器没有开放 3306 端口给办公网络时 在办公网使用 navicat 连接数据库是连不上的 要操作数据库 只能先 ssh 登陆到数据库服务器 然后在黑屏敲命令
  • 修改网站在浏览器上方显示的logo

    1 准备好要显示的图片 通过百度 ico在线制作 转换成为ico的格式 放在对应的位置中 2 在html的head中添加 3 href是ico的位置 4 刷新页面 清除缓存即可
  • OPC通讯的安全防护

    http www dqjsw com cn dianqi OPC 111931 html OPC通讯的安全防护 OPC 用于过程控制的OLE 被广泛应用在控制系统中 用于提供不同供应商的设备和软件之间的互操作性 最新版本的OPC OPC U
  • 所有项目-环境-教程-链接地址汇总

    一 项目相关 1 项目清单 不定期更新 myDemo源码汇总 qq com 5 成品视频展示网站 https space bilibili com 397822494 因为有部分视频因为部分问题 无法上传 可直接添加作者索要演示视频 2 环
  • 一篇小孩子都能看懂的 ChatGPT 原理解析

    本文作者小宝 85 后程序员 现在蚂蚁金服从事后端架构 爱读书 爱编码 过去半年 随着 ChatGPT 的大火 大模型已经成为一种新的社交货币 现在见面都不是问 天气怎么样 而是你用 ChatGPT 了么 国内各大巨头也纷纷下场 制作自己的
  • Oulipo 【POJ - 3461】【双值哈希】

    题目链接 题意 给你两个字符串 前一个是小字符串 后一个是大的字符串 问你 大的字符串中有几组可以与小的字符串相等的子字符串 此题其实不用双值哈希好像也可以的 但为了确保A就敲了个双值哈希 我们想把字符串的形式用数的值来表示 那么 我们可以