首页 > 其他分享 >考前复习——字符串哈希与哈希表

考前复习——字符串哈希与哈希表

时间:2023-06-20 12:13:40浏览次数:40  
标签:ch 复习 考前 int 哈希 字符串 define getchar

点击查看代码
#include<bits/stdc++.h>
using namespace std;

#define N 1005
#define ULL unsigned long long
#define Base 13331

int n;
ULL h[N][N],q[N];
char ch[N][N];

inline int read()
{
	int x=0;
	bool f=1;
	char ch=getchar();
	for(;!isdigit(ch);ch=getchar())
		if(ch=='-')
			f=0;
	for(;isdigit(ch);ch=getchar())
		x=(x<<1)+(x<<3)+ch-'0';
	return f?x:(~(x-1));
}

void Hash(int k)
{
	//计算第k个字符串的哈希值 
	ULL len=strlen(ch[k]+1);
	for(ULL i=1;i<=len;i++)
	{
		h[k][i]=h[k][i-1]*Base+(ch[k][i]-'A');
	}
	return ;
}

ULL ck(ULL h[],int l,int r)
{
	//获取该字符串[l,r]区间的哈希值 
	return h[r]-h[l-1]*q[r-l+1];
}

int main()
{
	cin>>n;//几个字符串
	q[0]=1;
	for(int i=1;i<N;i++)q[i]=q[i-1]*Base;
	for(int i=1;i<=n;i++)
	{
		scanf("%s",ch[i]+1);
		Hash(i);
	}
//	cout<<ck(h[1],1,3)<<" "<<ck(h[2],4,6);
	return 0;
}

标签:ch,复习,考前,int,哈希,字符串,define,getchar
From: https://www.cnblogs.com/pigAlg/p/17483579.html

相关文章

  • 【剑指 Offer】数组中重复的数字(C++_Easy_遍历/哈希/快排/原地)
    题目在一个长度为n的数组nums里的所有数字都在0~n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。测试样例输入:[2,3,1,0,2,5,3]输出:2或3限制2<=n<=100000题解题解一:遍历对vector容器......
  • 1.redis常见数据类型-字符串String、列表List、集合Set、Hash哈希、Zset有序集合
    背景:这里说的数据类型是value的数据类型,key的类型都是字符串。命令不区分大小写,而key的值是区分大小写的 help@+数据类型会出现命令提示比如help@string,help@list常见命令:keys*查看当前库所有key(匹配:keys*1)existskey判断某个key是否存在typekey查看你的......
  • 复习高中数学 极坐标
    1.定义2.极坐标与直角坐标的关系3.几种特殊情况的极坐标方程其他一般情况代入公式进行转换即可。......
  • 复习笔记
    第二章感知和认知基础1、人的感知交互通过什么?视觉,听觉,触觉感知 2、五觉视觉听觉触觉力觉感觉 3、认知过程感知识别注意记忆问题解决语言处理 4、RGB模型三原色红绿蓝 第三章交互设备1、输入设备有哪些?......
  • 使用Windows自带命令校验文件哈希值
    文章目录CertutilGet-FileHashCertutilCertutil是一个windows预装的CLI程序,主要作用是转储和显示证书颁发机构(CA),配置信息,证书服务,CA组件的备份和还原以及验证证书、密钥对和证书链,它作为证书服务的一部分安装。可用于校验文件MD5、SHA1、SHA256,下载恶意文件和免杀。这里记录如......
  • 一些计算机基础知识的考试复习题
    2013Excel里用AND在开头连接多个条件。立即寻址访问速度最快。直接寻址方式下,操作数在内存中,指令中给出操作数的地址,需要再访问一次内存来得到操作数。立即寻址方式下,操作数在指令中,所以在取得指令时就得到操作数,是速度最快的。寄存器寻址方式下,操作数在CPU的寄存器......
  • 计组复习笔记
    重点•冯.诺依曼计算机型计算机的五大特点(p1)•计算机系统的分类(SISDSIMDSIMDMIMD)•计算机能够普及的主要原因•异或门在组成原理中的应用•74LS1814位超前进位加法器•码制的转换、BCD码的概念,BCD码运算后需要修正、补码的双符号位表示•计算机中数据的表示范围和......
  • 逆向复习整理
    结合复习PPT简单谈谈一些东西的理解对于汇编的代码还没有完全整理(还可以更多),其他的简单写了一些更细致的东西IDA代码olldbg和汇编指令  下面这个就是复习一下之前的实验: 多半是问答的东西SEH结构体异常  SEH(StructuredExceptionHandling)是Windows中的一种......
  • 程序设计实习2023复习
    还没写完。这个东西也许和OI有关?反正也要复习,干脆写篇博客。introduction传统算法设计一般考虑有效算法(多项式时间),以及追求“精确解”,尤其是“经典”算法或者数据结构。这节课一般考虑那些不那么传统的、更加偏向现代的算法设计。一种就是近似算法,比如探索NP-hard问题在......
  • 单调栈复习01_230617
    主要关注栈内元素放置的是什么栈头-栈尾递增还是递减,寻找右侧最大元素,则栈内元素递增;例如Leetcode的每日温度,实则寻找右侧首个大于自身的元素位置,则栈内元素为下标、栈内元素逐渐增大,如果遍历到的元素小于栈顶元素则入栈,否则出栈主要逻辑如下:vector<int>dailyTemperatur......