『一本通』哈希和哈希表

Oulipo

 1 #include<bits/stdc++.h>
 2 #define N 1000000+5
 3 using namespace std;
 4 typedef unsigned long long ULL;
 5 const int b=55;
 6 ULL n,m,s,ans,p[N],sum[N];
 7 char s1[N],s2[N];
 8
 9 int main() {
10     scanf("%s",s1+1),scanf("%s",s2+1);
11     n=strlen(s1+1),m=strlen(s2+1);
12     p[0]=1;
13     for(int i=1;i<=n;i++)
14      sum[i]=sum[i-1]*b+s1[i]-‘A‘,p[i]=p[i-1]*b;
15     for(int i=1;i<=m;i++) s=s*b+s2[i]-‘A‘;
16     for(int i=0;i<=n-m;i++)
17      if(s==sum[i+m]-sum[i]*p[m]) ans++;
18     printf("%lld",ans);
19 }

图书管理

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 typedef unsigned long long ULL;
 4 const int b=233;
 5 long long n,len;
 6 ULL h;
 7 char op[5],s[205];
 8 map<ULL,bool>mp;
 9
10 int main() {
11     scanf("%d",&n);
12     while(n--) {
13         scanf("%s",op);
14         scanf("%s",s);
15         h=0,len=strlen(s);
16         for(int i=0;i<len;i++) h=h*b+s[i];
17         if(op[0]==‘a‘) mp[h]=1;
18         else puts(mp[h]==1?"yes":"no");
19     }
20 }

Seekthe Name, Seek the Fame

 1 #include<bits/stdc++.h>
 2 #define ULL unsigned long long
 3 using namespace std;
 4 const int b=55,N=4*1e5+5;
 5 char s[N];
 6 ULL sum[N],pw[N];
 7
 8 int main() {
 9     while(~scanf("%s",s+1)) {
10         int len=strlen(s+1); pw[0]=1;
11         for(int i=1;i<=len;i++) {
12             sum[i]=sum[i-1]*b+s[i];
13             pw[i]=pw[i-1]*b;
14         }
15         for(int i=1;i<=len;i++) {
16             ULL hou=sum[len]-sum[len-i]*pw[i];
17             if(sum[i]==hou) printf("%d ",i);
18         }
19         printf("\n");
20     }
21 }

收集雪花

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 const int N=1e6+5,t=7001;
 4 int n,l,ans,a[N],lst[N],h[t+5];
 5
 6 int main() {
 7     n=read();
 8     for(int i=1,j;i<=n;i++) {
 9         a[i]=read();
10         j=lst[i]=h[a[i]%t];
11         while(j&&a[i]!=a[j]) j=lst[j];
12         l=max(l,j),ans=max(ans,i-l);
13         h[a[i]%t]=i;
14     }
15     printf("%d",ans);
16 }

原文地址:https://www.cnblogs.com/qq8260573/p/10353877.html

时间: 2024-11-10 16:09:05

『一本通』哈希和哈希表的相关文章

『一本通』区间DP

石子合并 1 #include<bits/stdc++.h> 2 #define INF 0x3f3f3f3f 3 using namespace std; 4 int n,sm[505][505],bg[505][505],sum[505]; 5 inline int read() { 6 int x=0,f=1; char c=getchar(); 7 while(c<'0'||c>'9') {if(c=='-')f=-1; c=getchar();} 8 while(c>

『一本通』二分与三分

愤怒的牛 1 #include<bits/stdc++.h> 2 using namespace std; 3 int n,m,ans,a[100005]; 4 5 int check(int x) { 6 int cnt=1,lst=a[1]; 7 for(int i=2;i<=n;i++) 8 if(a[i]-lst>=x) cnt++,lst=a[i]; 9 return cnt; 10 } 11 12 int main() { 13 scanf("%d%d&quo

『一本通』广搜的优化技巧

Knight Moves 1 #include<bits/stdc++.h> 2 using namespace std; 3 const int dx[9]={2,2,1,1,-1,-1,-2,-2},dy[9]={-1,1,-2,2,-2,2,-1,1}; 4 int n,L,step[305][305]; 5 struct node{int x,y;}b,e; 6 queue<node>q; 7 bool check(int x,int y) {return x>=0&

『一本通』差分约束系统

Intervals 设$s[k]$表示$0$~$k$之间最少选出多少个整数. 由题得$s[b_i]-s[a_i-1]\ge c_i$,$0\le s[k+1]-s[k] \le 1$ . 根据关系式连边,$SPFA$ 跑一遍 最长路 即可. #include<bits/stdc++.h> using namespace std; const int N=5e4+5; int n,cnt,Min,Max,fro[N],dis[N]; bool vis[N]; struct edge{int to

『AngularJS』$location 服务

参考: ng.$location Developer Guide: Angular Services: Using $location 简介 $location服务解析在浏览器地址栏中的URL(基于window.location)并且让URL在你的应用中可用.改变在地址栏中的URL会作用到$location服务,同样的,改变$location服务也会改变浏览器的地址栏.(可以使用$location进行重定向等操作) $location服务: 暴露浏览器地址栏中的URL,让你可以: 监察URL.

『ENGLISH』

以A字母开头的词汇 英文 中文 abstract module 抽象模组 access 访问.存取 access control 存取控制 access control information 存取控制资讯 access mechanism 存取机制 access rights 存取权限 accessibility 无障碍性 accessibility information 无障碍网页资讯 accessibility problem 无障碍网页问题 accessible 无障碍的 access

『TensorFlow』函数查询列表_神经网络相关

神经网络(Neural Network) 激活函数(Activation Functions) 操作 描述 tf.nn.relu(features, name=None) 整流函数:max(features, 0) tf.nn.relu6(features, name=None) 以6为阈值的整流函数:min(max(features, 0), 6) tf.nn.elu(features, name=None) elu函数,exp(features) - 1 if < 0,否则featuresE

『数据库』随手写了一个 跨数据库 数据迁移工具

随手写了一个 跨数据库 的 数据迁移工具:>目前支持 SQLServer,MySql,SQLite: >迁移工具 可以自动建表,且 保留 主键,自增列: >迁移工具 基于 Laura.Source  ORM框架 开发: >迁移工具 支持 崩溃恢复(重启迁移工具,将会继续 未完成的 数据迁移): >每张表一个事务(即使  表中有 >100W 的数据,也是一个事务完成): >迁移后 的 自增列 和 原数据库 保持一致: 只是展示一下,直接上图片: 操作工具: 迁移工具

谈谈前端『新』技术

技术这个行当,永远会有新东西出来,不进则退.更关键的是,前端比起整个软件工程乃至计算机科学体系来说,是个相对新生草莽的领域,近年来前端生态的发展其实都是在向其他领域吸收和学习,不论是开发理念.工程实践还是平台本身(规范.浏览器).所谓的『根正苗红』的前端,不过是整个发展进程中探索的一个阶段而已,那个时代的最佳实践,很多到今天都已经不再适用.过往的经验固然有价值,但这些经验如果不结合对新事物本身的了解,就很难产生正确的判断.这里需要强调的是,学习新事物并不是为了不考虑实际需求的滥用,而是为了获取足