uva12338
来源:互联网 发布:美国eia数据是什么 编辑:程序博客网 时间:2024/06/06 20:56
裸题??。。。【hash还是学的不大好。。。。
给N个字符串,再给两个数i,。判断i和j的一样的长度是多少。。【被提醒用vector开动态数组
#include <cstdio>#include <algorithm>#include <vector>#include <cstring>using namespace std;unsigned long long b=100000007;const int maxn=100010;vector <unsigned long long> hashcode[maxn];int strhash[maxn];char str[maxn];void gethash(int pos){ int len=strlen(str); strhash[pos]=len; hashcode[pos].clear(); hashcode[pos].push_back(0); for(int i=1;i<=len;i++) hashcode[pos].push_back(hashcode[pos][i-1]*b+str[i-1]);}int main(){ int T,N,Q,a,b,l,r,mid; scanf("%d",&T); for(int i=1;i<=T;i++) { printf("Case %d:\n",i); scanf("%d",&N); for(int j=1;j<=N;j++) { scanf("%s",str); gethash(j); } scanf("%d",&Q); for(int j=1;j<=Q;j++) { scanf("%d%d",&a,&b); int len=min(strhash[a],strhash[b]); l=0;r=len; while(l<r) { mid=(l+r+1)/2; if(hashcode[a][mid]==hashcode[b][mid]) l=mid; else r=mid-1; } printf("%d\n",l); } }}
0 0
- uva12338
- uva12338 - Anti-Rhyme Pairs 询问最长公共前缀 HASH+二分
- uva12338 Anti-Rhyme Pairs (字符串hash+二分)
- 时隔几个礼拜又一把ac uva12338 用string 做的
- fastjson工具函数json和java对象相互转化
- 关于Wireshark "The NPF driver isn’t running……"解决办法
- 二叉排序树
- POJ 2229-Sumsets ( 基础DP)
- linux tomcat部署项目命令
- uva12338
- 双调欧几里得TSP一维优化
- java掷骰子游戏联机版
- spring工作原理(转)
- pushinfo变废为宝,值得思考,这个真得要要要
- Least Common Multiple
- linux部署tomcat项目常用命令
- 网游配乐的地位变化
- Hadoop备战:hdfs常用命令(可能有你不知道的)