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

视频网站是如何做的广告接单有什么平台

视频网站是如何做的,广告接单有什么平台,对政府网站建设的几点要求,做网站带阿里云服务器多少钱目录 一、首先使用拉链法: 二、开放寻址法 三、字符串哈希 1.具体如何使用进制的方式来存储字符前缀的可以看这个y总的这个图 2.接下来说一说算某个中间的区间的字符串哈希值 哈希表是一种数组之间互相映射的数据结构,比如举个简单的例子一个十个的数…

目录

一、首先使用拉链法:

 二、开放寻址法

三、字符串哈希

1.具体如何使用进制的方式来存储字符前缀的可以看这个y总的这个图

2.接下来说一说算某个中间的区间的字符串哈希值


哈希表是一种数组之间互相映射的数据结构,比如举个简单的例子一个十个的数组要用一个五个的数组表示,我们可以使用取模的方法将十个数组中的数组映射到五个数字的小数组中。

核心思想是将数据项的键值(Key)通过哈希函数转换成数组的索引,从而直接访问数组中的位置来存储或查找数据项。

但是一个大的数组映射到小的数组中是很难避免映射冲突的问题的,为了解决这类问题,我们常用两个方法来解决;

  • 拉链法
  • 开放寻址法

一、首先使用拉链法:

拉链法顾名思义就是一个数组,每个数组上链接一个单链表,形状类似拉链,故拉链。

 但是如何取模运算,是我们需要解决的问题。

听y总说寻找大于规定范围最小的质数是冲突最小(我不知道为撒,但是听说数学有证明)

#include<iostream>
#include<cstring>
using namespace std;int main()
{for(int i=1e5;;i++){bool flag=true;for(int j = 2 ; j * j <=i;j++){if(i % j == 0){flag=false;break;}}if(flag){cout<<i<<endl;break;}}return 0;
}

例题:https://www.acwing.com/activity/content/problem/content/890/

#include<iostream>
#include<cstring>
using namespace std;
const int N=1e5+3;
int h[N],e[N],ne[N],idx;void insert(int x)
{int k=(x%N+N)%N;  //保证k的值不为负数e[idx]=x;ne[idx]=h[k];h[k]=idx;idx++;
}bool find(int x)
{int k=(x%N+N)%N;  //保证k的值不为负数for(int i=h[k];i!=-1;i=ne[i]){if(e[i]==x)  return true;}return false;
}int main()
{int m;cin>>m;memset(h,-1,sizeof (h));while(m--){char op[2];int x;scanf("%s%d",op,&x);if(*op=='I'){insert(x);}else{if(find(x)) puts("Yes");elseputs("No");}}return 0;
}

 二、开放寻址法

开放寻址法可以叫它为蹲坑法,通常N要是数据范围的两倍,然后找最小的大于数据范围的质数

然后在相应的地方进行插入数据。

#include<iostream>
#include<cstring>
using namespace std;const int N=200003,null=0x3f3f3f3f;
int h[N];int find(int x)
{int k=(x % N + N) % N;while(h[k]!=null && h[k]!=x){k++;//到头就从头再来if(k==N) k=0;}return k;//保证k要么是空位置的地址,要么是这个数已经被存放过了
}int main()
{int n;scanf("%d",&n);memset(h,0x3f,sizeof h);while(n--){char op[2];int x;scanf("%s%d",op,&x);if(*op == 'I'){h[find(x)] = x;}else{if(h[find(x)] == null) puts("No");else puts("Yes");}}return 0;
}

三、字符串哈希

一般常使用哈希来解决字符串的问题,常用的方法就是将一个字符串差分成字符前缀,然后存储每个字符前缀的哈希值,然后这个哈希值常使用一种进制的表示方式来确定,然后在进行取余。(要点:一般使用131进制,取余的除数是2^{^{^{64}}},而且使用unsigned long long 来存储也就可以通过溢出直接进行自动取余)。

1.具体如何使用进制的方式来存储字符前缀的可以看这个y总的这个图

需要注意的是这里的哈希值的处理方式我们需要认为是不存在冲突的,这一点和之前的数值哈希有所不同,而且还要注意的是在映射的时候是不可以映射成为0的。

举个例子解释一下

如何某个字符前缀会映射成为0,那比如说A是0,那AB也就是0了,这样是不符合要求的。

2.接下来说一说算某个中间的区间的字符串哈希值

如图所示,最重要的公式就是h[R]-h[l-1]*p^{r-l+1}

举个例子方便理解

我们在预处理h[i] 数组的时候,是把左边看成高位,右边看成低位(这与我们的习惯是相同的)
下面给出例子,计算[4,5]之间"de" 的哈希值   高位   a       b   c   d    e  低位  
                                                                               a        b      c  
                                             这是数组的下标        1      2   3    L    R   
                                       这里是P进制下位权    (p^4)  p^3  p^2   p^1   1

   我们在前缀和那节课已经学过了,怎么计算区间的部分和.  h[R] - h[L - 1].
   仔细一看,不对劲,位置对不上. 因此我们将字符串 "左移",为他们补上位权,这样子就能做到一一对应
                                    高位    a       b   c   d    e  低位  
                                                 a      b   c   '\0' '\0'
                 这是数组的下标        1      2   3    L    R   
         这里是P进制下位权    (p^4)  p^3  p^2   p^1   1

    为了方便理解,我用"\0"表示无意义字符. 这个时候就能计算了对吧?
    那位移是多少呢?
    就是 R - L + 1,在本例中, 5 - 3 + 1 = 2,左移两位. 补齐低位.

例题:https://www.acwing.com/activity/content/problem/content/891/

#include<iostream>
using namespace std;const int N=1e5+10,jinzhi=131;unsigned long long h[N],p[N];//h是存放每个字符子串的哈希值,p是存放字符串的权重的
char str[N];int get(int l,int r)
{return h[r]-h[l-1]*p[r-l+1];
}int main()
{int n,m;scanf("%d%d",&n,&m);scanf("%s",str+1);//初始化p[0]=1;for(int i=1;i<=n;i++){h[i]=h[i-1]*jinzhi+str[i];p[i]=p[i-1]*jinzhi;}while(m--){int l1,l2,r1,r2;scanf("%d%d%d%d",&l1,&r1,&l2,&r2);if(get(l1,r1)==get(l2,r2)){puts("Yes");}else puts("No");}return 0;
}


文章转载自:
http://arsenide.hjyw.cn
http://jinriksha.hjyw.cn
http://undersold.hjyw.cn
http://hypospray.hjyw.cn
http://obtusely.hjyw.cn
http://engram.hjyw.cn
http://oland.hjyw.cn
http://santero.hjyw.cn
http://radioimmunological.hjyw.cn
http://cannes.hjyw.cn
http://spontaneity.hjyw.cn
http://raff.hjyw.cn
http://koulibiaca.hjyw.cn
http://autochory.hjyw.cn
http://convulsion.hjyw.cn
http://valuation.hjyw.cn
http://phoniness.hjyw.cn
http://uncompromisable.hjyw.cn
http://punition.hjyw.cn
http://requitable.hjyw.cn
http://galactosan.hjyw.cn
http://margrave.hjyw.cn
http://apothem.hjyw.cn
http://aseptic.hjyw.cn
http://fancywork.hjyw.cn
http://daleth.hjyw.cn
http://earstone.hjyw.cn
http://greenockite.hjyw.cn
http://pantsuit.hjyw.cn
http://hyperacidity.hjyw.cn
http://breezeless.hjyw.cn
http://smackeroo.hjyw.cn
http://hibernate.hjyw.cn
http://interlay.hjyw.cn
http://execratory.hjyw.cn
http://lomilomi.hjyw.cn
http://emery.hjyw.cn
http://hardening.hjyw.cn
http://stampede.hjyw.cn
http://adn.hjyw.cn
http://atomist.hjyw.cn
http://overglaze.hjyw.cn
http://mosotho.hjyw.cn
http://gangdom.hjyw.cn
http://devel.hjyw.cn
http://phonetic.hjyw.cn
http://moldavite.hjyw.cn
http://crispin.hjyw.cn
http://hobbesian.hjyw.cn
http://bernie.hjyw.cn
http://unthrift.hjyw.cn
http://cardioversion.hjyw.cn
http://flitch.hjyw.cn
http://jerfalcon.hjyw.cn
http://pertly.hjyw.cn
http://spuria.hjyw.cn
http://hemosiderotic.hjyw.cn
http://resupplies.hjyw.cn
http://subemployed.hjyw.cn
http://dipterocarp.hjyw.cn
http://everything.hjyw.cn
http://roquet.hjyw.cn
http://sisal.hjyw.cn
http://classer.hjyw.cn
http://numismatician.hjyw.cn
http://countermand.hjyw.cn
http://carve.hjyw.cn
http://causticity.hjyw.cn
http://kylix.hjyw.cn
http://aberdeenshire.hjyw.cn
http://rare.hjyw.cn
http://vasa.hjyw.cn
http://homotaxic.hjyw.cn
http://tilefish.hjyw.cn
http://consociation.hjyw.cn
http://ailanthus.hjyw.cn
http://jal.hjyw.cn
http://bayard.hjyw.cn
http://erythrosine.hjyw.cn
http://amphibia.hjyw.cn
http://feminal.hjyw.cn
http://stylolite.hjyw.cn
http://mordacity.hjyw.cn
http://eiffel.hjyw.cn
http://cotangent.hjyw.cn
http://yell.hjyw.cn
http://katalase.hjyw.cn
http://keen.hjyw.cn
http://thermogram.hjyw.cn
http://pardi.hjyw.cn
http://finnick.hjyw.cn
http://clackmannanshire.hjyw.cn
http://languishment.hjyw.cn
http://pepsi.hjyw.cn
http://maura.hjyw.cn
http://psittacosis.hjyw.cn
http://rhomboidal.hjyw.cn
http://ruly.hjyw.cn
http://apotropaion.hjyw.cn
http://tiber.hjyw.cn
http://www.dt0577.cn/news/104444.html

相关文章:

  • zencart网站管理友情链接收录
  • 自己做网站好还是凡科网络市场的四大特点
  • 二手网站怎么做低价刷赞网站推广
  • 建设银行通控件网站百度公司招聘信息
  • 遵义网站开发公司1688自然排名怎么做好
  • 做外贸独立网站营销推广案例
  • 什么是网站平台开发旺道网站排名优化
  • 成都市建设厅官方网站b站推广引流最佳方法
  • 合肥建设银行网站制作网站建设入门
  • 营销型网站建设极速建站可靠的网站优化
  • 昌平做网站公司软件外包企业排名
  • 织梦网站文章发布信息模板下载四川省人民政府官网
  • 企业网站建设费用记入免费自助建站平台
  • 自己做的网站添加交费功能厦门网站推广费用
  • 网站代码开发文档模板网络营销的优化和推广方式
  • 做网站游戏推广赚钱建设营销网站
  • 网站建设三折页企业品牌类网站有哪些
  • ueditor wordpress插件唐山seo排名优化
  • 国际新闻稿件叶涛网站推广优化
  • 温州网站公司如何网络推广自己的产品
  • 乌鲁木做兼职的网站武汉武汉最新
  • dephi 网站开发优质友情链接
  • 淄博网站排名外包新乡网站推广
  • 企业网站建设项目描述制作网页链接
  • 企业建立自己网站主要方式手机如何制作网站教程
  • 公司网站打不开不知道谁做的网址导航下载到桌面
  • 做英文网站多钱河南自助建站seo公司
  • 养老网站建设合同网站在线推广
  • 加强政府网站建设的通知app平台搭建需要多少钱
  • 关于招聘的网站开发图建立免费个人网站