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

AAP网站开发需要多少钱seo推广的特点

AAP网站开发需要多少钱,seo推广的特点,dw做网站背景图片设置铺平,公安部网站备案流程字符串Hash就是构造一个数字使之唯一代表一个字符串。但是为了将映射关系进行一一对应,也就是,一个字符串对应一个数字,那么一个数字也对应一个字符串。 用字符串Hash的目的是,我们如果要比较一个字符串,我们不用直接比…

字符串Hash就是构造一个数字使之唯一代表一个字符串。但是为了将映射关系进行一一对应,也就是,一个字符串对应一个数字,那么一个数字也对应一个字符串。
用字符串Hash的目的是,我们如果要比较一个字符串,我们不用直接比较字符串,而是比较它对应映射的数字,这样子就知道两个“子串”是否相等。从而达到,子串的Hash值的时间为 O(1),进而可以利用“空间换时间”来节省时间复杂的。
#######################################
给定一个长度为 n
的字符串,再给定 m
个询问,每个询问包含四个整数 l1,r1,l2,r2
,请你判断 [l1,r1]
和 [l2,r2]
这两个区间所包含的字符串子串是否完全相同。

字符串中只包含大小写英文字母和数字。

输入格式
第一行包含整数 n
和 m
,表示字符串长度和询问次数。

第二行包含一个长度为 n
的字符串,字符串中只包含大小写英文字母和数字。

接下来 m
行,每行包含四个整数 l1,r1,l2,r2
,表示一次询问所涉及的两个区间。

注意,字符串的位置从 1
开始编号。

输出格式
对于每个询问输出一个结果,如果两个字符串子串完全相同则输出 Yes,否则输出 No。

每个结果占一行。

数据范围
1≤n,m≤105
输入样例:
8 3
aabbaabb
1 3 5 7
1 3 6 8
1 2 1 2
输出样例:
Yes
No
Yes

关键点:
字符串哈希值的计算:通过前缀哈希值,可以在常数时间内计算任意子串的哈希值。在这里,使用了 get 函数来计算 [l, r] 子串的哈希值。

进制选择:选择一个适当的进制是关键,这里使用了常用的质数 131(    常用P 还可以= 133313)。质数的选择可以减小哈希冲突的可能性。前缀哈希值的快速计算:通过累积进制的幂,可以在常数时间内计算前缀哈希值。这里使用了 p 数组存储进制的幂,h 数组存储前缀哈希值。字符串比较:通过比较两个子串的哈希值是否相等,可以在常数时间内完成字符串的比较。这在一些算法中能够提高效率,例如字符串的快速匹配等。
#include <iostream>using namespace std;typedef unsigned long long ULL;  // 使用 unsigned long long 类型表示哈希值const int N = 100010, P = 131;  // N 表示字符串长度的最大值,P 是选择的哈希进制int n, m;
ULL h[N], p[N];  // h 存储前缀哈希值,p 存储进制的幂
char str[N];  // 输入的字符串ULL get(int l, int r)
{return h[r] - h[l - 1] * p[r - l + 1]; // 计算字符串 [l, r] 的哈希值,使用前缀哈希值的差值表示子串哈希值
}int main()
{scanf("%d%d%s", &n, &m, str + 1);p[0] = 1;for(int i = 1; i <= n; i ++ ){p[i] = p[i - 1] * P;  // 计算进制的幂h[i] = h[i - 1] * P + str[i];  // 计算前缀哈希值}while(m -- ){int l1, r1, l2, r2;scanf("%d%d%d%d", &l1, &r1, &l2, &r2);if(get(l1, r1) == get(l2, r2)) printf("Yes\n");  // 比较两个子串的哈希值是否相等else printf("No\n");}return 0;
}

代码中:
h[i] = h[i - 1] * P + str[i];是字符串哈希的递推计算方式,称为Rolling Hash。

在这个式子中,h[i] 表示字符串的前 i 个字符的哈希值。它通过前一个状态 h[i-1],乘以进制 P,再加上当前字符 str[i] 的 ASCII 码,得到当前状态 h[i]。

这个计算过程实际上是一种累积计算,每次迭代都基于前一个状态进行更新。由于使用了进制 P,每一次迭代都相当于在前一个状态的基础上左移一位,并加上新字符的贡献。

这样计算的好处在于,每次只需要常数时间就能够更新哈希值,使得整个字符串的哈希值的计算复杂度是线性的。在很多字符串匹配、子串比较的算法中,这种哈希计算方式可以提高效率。需要注意的是,为了避免整数溢出,通常需要选择一个适当的大质数作为进制 P。

http://www.dt0577.cn/news/12106.html

相关文章:

  • 怎么在互联网做网站html网页制作app
  • 做影视网站如何加速免费的html网站
  • 怎么建网站做网络推广费计入什么科目
  • .net网站空间个人网页制作成品
  • 昆明网站建设流程莆田百度seo公司
  • 如何做家教网站百度搜索
  • 一建十大网校排名全网优化哪家好
  • 运维网站建设最近发生的热点事件
  • 模拟登录wordpress福州seo技巧培训
  • 普陀做网站手机网站制作软件
  • 买网站需要多少钱银行营销技巧和营销方法
  • 广州网站开发创意设计公司今日足球赛事数据
  • 长春网站建设及推广免费网站推广工具
  • 看企业网站怎么做到百度秒收成都网络优化托管公司
  • 自贡网站设计郑州网站建设公司
  • wordpress $authordata杭州seo外包
  • wordpress源码教程seo快排
  • 自己做的网站怎么给别人访问最新全国疫情消息
  • html网页设计论文2000字seo需要懂代码吗
  • 创维网站关键字优化网站seo排名
  • wordpress手机版跳转到页面网站seo推广多少钱
  • 怎么做网站的百度收录360点睛实效平台推广
  • 网站开发流程说明怎么建造自己的网站
  • 电子购物网站软文推广渠道主要有
  • 微信网站建设新闻深圳百度网站排名优化
  • 自己在公司上班做网站宣传 侵权吗外贸推广代理
  • 网页设计的特点有哪些太原搜索引擎优化
  • 网站营销不同阶段的网站分析目标电商seo是什么意思
  • proudly powered by wordpress廊坊关键词优化平台
  • 怎么创立网站 优帮云外链吧怎么使用