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

商城网站源码下载网站策划书模板

商城网站源码下载,网站策划书模板,网站出现风险如何处理方法,做网站备案成功之后改怎么操作回忆:哈希函数与哈希冲突 哈希函数:将关键字映射成对应的地址的函数,记为 Hash(key) Addr 。哈希冲突:哈希函数可能会把两个或两个以上的不同关键字映射到同⼀地址,这种情况称为哈希冲突。 字符串哈希 定义⼀个把字…
  1. 回忆:哈希函数与哈希冲突
  • 哈希函数:将关键字映射成对应的地址的函数,记为 Hash(key) = Addr
  • 哈希冲突:哈希函数可能会把两个或两个以上的不同关键字映射到同⼀地址,这种情况称为哈希冲突。
  1. 字符串哈希
    定义⼀个把字符串映射到整数的函数hash ,这就是字符串哈希。说⽩了,就是将⼀个字符串⽤⼀个整数表⽰。
  2. 字符串哈希中的哈希函数
    在字符串哈希中,有⼀种冲突概率较⼩的哈希函数,将字符串映射成p 进制数字
    h a s h ( s ) = ∑ i = 0 n − 1 s [ i ] × p n − i − 1 ( M O D M ) hash(s) = \sum^{n-1}_{i=0} s[i] \times p^{n-i-1} (MOD M) hash(s)=i=0n1s[i]×pni1(MODM)
    其中,p通常取质数131或者13331。如果把哈希值定义为unsigned long long类型,在C++中,溢出就会⾃动取模。
    但是,实际求哈希值时,我们⽤的是前缀哈希的思想来求,这样会和下⾯的多次询问⼦串哈希⼀致
  3. 前缀哈希数组
    单次计算⼀个字符串的哈希值复杂度是O(N)。如果需要多次询问⼀个字符串的⼦串的哈希值,每次重新计算效率⾮常低下。
    ⼀般利⽤前缀和思想先预处理字符串中每个前缀的哈希值,这样的话每次就能快速求出⼦串的哈希了
    在这里插入图片描述
typedef unsigned long long ULL;  
const int N = 1e6 + 10, P = 13331;  
char s[N];  
int len;  
ULL f[N]; // 前缀哈希数组  
ULL p[N]; // 记录 p 的 i 次⽅  
// 处理前缀哈希数组以及 p 的 i 次⽅数组  
void init_hash()  
{  f[0] = 0; p[0] = 1;  for(int i = 1; i <= len; i++)  {  f[i] = f[i - 1] * P + s[i];  p[i] = p[i - 1] * P;  }  
}  
// 快速求得任意区间的哈希值  
ULL get_hash(int l, int r)  
{return f[r] - f[l - 1] * p[r - l + 1];  
}

如果题⽬只是简单的求单个字符串的哈希值:

typedef unsigned long long ULL;  
const int N = 1e6 + 10;  
int len;  
char s[N];  
ULL gethash()  
{  ULL ret = 0;  for(int i = 1; i <= len; i++)  {  ret = ret * p + s[i];  }  return ret;  
}
P3370 【模板】字符串哈希 - 洛谷
#include <bits/stdc++.h>
using namespace std;typedef unsigned long long ULL;const int N = 1e4 + 10, P = 131;int n;
int a[N];ULL get_hash(string& s)
{ULL ret = 0;for (int i = 1; i <= s.size(); i++){ret = ret * P + s[i-1];        }return ret;
}int main()
{ios::sync_with_stdio(false);cin.tie(0);cin >> n;for (int i = 1; i <= n; i++){string s; cin >> s;a[i] = get_hash(s);}int ret = 1;sort(a+1, a+1+n);for (int i = 2; i <= n; i++){if (a[i] != a[i-1]) ret++;        }cout << ret << endl;return 0;
}
P10468 兔子与兔子 - 洛谷
#include <bits/stdc++.h>
using namespace std;typedef unsigned long long ULL;const int N = 1e6 + 10, P = 13331;int n;
string s;
ULL f[N]; //前缀哈希数组
ULL p[N]; //p的i次方void init_hash()
{p[0] = 1;for (int i = 1; i <= n; i++){f[i] = f[i-1] * P + s[i];p[i] = p[i-1] * P;}
}ULL get_hash(int l, int r)
{return f[r] - f[l-1] * p[r-l+1];
}int main()
{ios::sync_with_stdio(false);cin.tie(0);cin >> s;n = s.size();s = " " + s;init_hash();int m; cin >> m;while (m--){int l1, r1, l2, r2; cin >> l1 >> r1 >> l2 >> r2;ULL x = get_hash(l1, r1), y = get_hash(l2, r2);if (x == y) cout << "Yes" << endl;else cout << "No" << endl;}return 0;
}
http://www.dtcms.com/wzjs/154655.html

相关文章:

  • 职场社交网站怎么做河南整站百度快照优化
  • 网站前台怎么做企业宣传网站
  • 冬夜主题wordpressseo是搜索引擎优化吗
  • 网站技术开发文档模板付费推广方式有哪些
  • 个人网站模板响应式营销网络是什么意思
  • 用C语言做网站登录界面世界互联网峰会
  • 阿里云虚拟主机怎么建立网站百度小说排行榜前十名
  • dreamweaver 电商网站的制作网站关键词排名快速提升
  • 哪些企业网站做的好seo 页面链接优化
  • 电子商务网站建设方案案例合肥网站优化技术
  • 电商网站建设与开发课程试卷怎么在百度上推广自己
  • 网站建设增城东莞做网站公司电话
  • 税务局网站模板好看的seo网站
  • 设计灵感优化大师怎么删除学生
  • 郑州专业个人网站建设产品推广计划方案模板
  • 手机网站欣赏中美关系最新消息
  • sae wordpress伪静态seo关键词挖掘工具
  • 厦门做网站优化seo公司 彼亿营销
  • 毕业设计可以做网站不汽车网络营销推广方案
  • 网站设计毕业论文进度表范文找做网站的公司
  • 定制网站开发商业计划书重庆企业网站排名优化
  • 与电子商务网站建设有关实训报告培训网站排名
  • 珠海本地网站设计公司seo整站优化解决方案
  • 建站行业新闻推广软文
  • 做网站就业要会什么问题大众网疫情最新消息
  • 汽车网有哪些网站大全线上营销活动主要有哪些
  • 建立公众号seo专家是什么意思
  • 一级a做爰片偷拍免费网站百度收录是什么意思
  • 建设外包网站免费收录平台
  • 云安区学校网站建设统计表网站seo提升