首页 > 其他分享 >(续)哈希表 和 字符串哈希(9/15)

(续)哈希表 和 字符串哈希(9/15)

时间:2023-09-16 10:36:05浏览次数:37  
标签:null 15 哈希 int ULL 字符串 return include

开放寻址法

#include<iostream>
#include<algorithm>
#include<cstring>
#include<string>
using namespace std;
const int N =200003,null=0x3f3f3f3f;
int a[N];
int find(int x) {
    int k = (x % N + N) % N;//重点哈希公式
    while (a[k] != null && a[k] != x) {
        k++;
        if (k == N) k = 0;
    }
    return k;
}


int main()
{
    memset(a, null, sizeof(a));
    int n; cin >> n; int x; 
    while (n--) {
        string s; cin >> s;
        scanf("%d", &x);
        int k = find(x);
        if (s == "I") a[k] = x;
        else {
            if(a[k]==x)  printf("Yes\n");
            else printf("No\n");
        }
    }
    return 0;
}

 

 

字符串哈希

注意点!!!!

 

#include<iostream>
#include<string>
using namespace std;
typedef unsigned long long ULL;
const int N=100001;char str[N];
ULL a[N],p[N];int P=131;
ULL get(int l,int r){
    return a[r]-a[l-1]*p[r-l+1];
}
int main(){
    int n,m;cin>>n>>m;
    scanf("%s",str+1);
    p[0]=1;
    for(int i=1;i<=n;i++){
        a[i]=a[i-1]*P+str[i];//存放字符串哈希
        p[i]=p[i-1]*P;//存放p进制数
    }
    while(m--){
           int l1,r1,l2,r2;
           scanf("%d%d%d%d",&l1,&r1,&l2,&r2);
           if(get(l1,r1)==get(l2,r2)) puts("Yes");
           else puts("No");
    }
    return 0;
}

 

标签:null,15,哈希,int,ULL,字符串,return,include
From: https://www.cnblogs.com/daimazhishen/p/17706371.html

相关文章

  • 解密Prompt系列15. LLM Agent之数据库应用设计:DIN & C3 & SQL-Palm & BIRD
    上一章我们主要讲搜索引擎和LLM的应用设计,这一章我们来唠唠大模型和DB数据库之间的交互方案。有很多数据平台已经接入,可以先去玩玩再来看下面的实现方案,推荐sqltranslate:简单,文本到SQL,SQL到文本双向翻译,新手体验ai2sql:功能更全,包括语法检查,格式化等chat2query:可处理复杂query......
  • 2023年9月15日 天气:晴
    今天学会了如何生成图片,然后在图片上生成随机数。importjavax.imageio.ImageIO;importjava.awt.*;importjava.awt.image.BufferedImage;importjava.io.FileOutputStream;importjava.util.Random;publicclassMain2{publicstaticvoidmain(String[]args)throw......
  • 每日总结9.15
    早上,虽然有些困倦,但我还是迅速起床,洗漱完毕后,去食堂享用了一顿丰盛的早餐。吃完早餐后,我赶往教室,上午的课程紧凑而充实。老师们讲解内容深入浅出,帮助我们更好地理解知识点。我积极参与课堂互动,向老师提问,并与同学们进行讨论。这样的互动让我对学习更加感兴趣,也能够更好地掌握知识......
  • 2023.9.15
    今天在继续研究昨天剩下的一些疑问,就是感觉一些地方很奇怪,看ctfwiki上的堆上的格式化字符串漏洞,和正常的格式化字符串漏洞利用好像没多大区别,只是用了pivoting的思想,没感觉到字符串在堆上有什么影响明天看看能不能把这些问题解决掉......
  • 9.15日
    一、上午休息,下午学了英语翻译认识了好多单词,但是没有记住,读课文的能力又提高了。二、五点多去操场练短跑还有1000米应付体测。三、洗完澡回来,看了看今天牛客月赛78,然后写了一个这个比赛的题解,发布在了csdn。四、学了一下Java怎么输出成图形化列表。五、明天复习竞赛,学莫队算......
  • 9.15周五
    今日学习c++中的stoi函数头文件#include<string>用法:1stoi(字符串,起始位置,n进制)//将字符串转化成为10进制2示例:stoi(str,0,2)//将字符串str从0位置开始到末尾由2进制转化为10进制明日计划搞作业......
  • 2023.9.15——每日总结
    学习所花时间(包括上课):9h代码量(行):0行博客量(篇):1篇今天,上午考试,下午帮助同学。我了解到的知识点:1.实现建民老师的HBase试题的插入部分;明日计划:1.完成我的任务......
  • 大二打卡(9.15)
    今天做了什么:上午睡了个久违的懒觉,然后上了形势与政策的课,今天老师格外有热情,发了好几个课堂互动,前两个我还不知所措,没什么好回答的,到了问你的家乡或者学校周围的支柱型产业,忽然高中班主任天天念叨的安平丝网进入我的脑海,一个顺手发送出去,还引得了老师的关注,看来安平丝网有名的不......
  • 2023年9月15日每日随笔
        今天,进行了极限测试,写了四个多小时,后台写的差不多,前台写的也差不多,有个模板自己撰写,进行编写,但是最后没写出来,habase有bug,回来后重启以下就i解决了,下午睡了一觉,把以前前端的东西又写了写,后端原来用mybits进行得sql操作,改成自己写的dao包,虽然有bug,但是功能基本实现了,......
  • 9.15日记
    今天进行了Javaweb连接HBASE实现增查的任务测试<%@pagecontentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtml><html><head>   <linkrel="stylesheet"href="layui/css/layui.css">   ......