Uva 12338: Anti-Rhyme Pairs(Hash)
来源:互联网 发布:网络优化面试题 编辑:程序博客网 时间:2024/06/06 02:00
这题思路其实很简单啦……
用hash做啦做啦做啦做啦~~~
对于每一个字符串~从前往后,依次算出前i 个字符的总的hash值,存到对应数组的i位置~
然后Q的时候比较第a 个和第b 个的前多少位是一样滴~输出就行啦啦啦啦啦~~
说一下我的悲剧:
1、 我特么以为是从a 号位置到b 号位置的所有字符串啊啊啊啊啊啊!!!TLE 了啊有木有!!!
2、我特么用的二维数组啊!!!二维数组啊!!!CE啊有木有有木有!!!根本开不了那么大的啊!!!
3、我特么HASH基数选得26啊!!!26啊!!!那特么的竟然是ASCLL码啊!!!要大于122啊有木有啊!!!WA了啊啊啊啊啊!!!
咳咳。。。回归。。。
第一个和第三个没什么好说的,第二个的解决方案就是改成用vector存储,不开一个固定大小的数组,而开动态数组,根据需要来添加所需的数字。
AC Memory: 0KB Time : 742MS
代码:
#include<cstdio>#include<cstring>#include<vector>#include<algorithm>#include<cmath>using namespace std;vector<unsigned long long> shash[100010];int slen[100010];char s[100010];void solve(int pos){ int len=strlen(s); slen[pos]=len; shash[pos].clear(); shash[pos].push_back(0); for(int i=1;i<=len;i++) shash[pos].push_back(shash[pos][i-1]*2333+s[i-1]);}int main(){ int T,n,M,k,a,b; scanf("%d",&T); for(int t=1;t<=T;++t) { printf("Case %d:\n",t); scanf("%d",&n); for(int i=1;i<=n;++i) { scanf("%s",s); solve(i); } scanf("%d",&M); while(M--) { scanf("%d%d",&a,&b); int len=min(slen[a],slen[b]); int l=0,r=len; while(l<r) { int mid=(l+r+1)/2; if(shash[a][mid]==shash[b][mid]) l=mid; else r=mid-1; } printf("%d\n",l); } } return 0;}
0 0
- Uva 12338: Anti-Rhyme Pairs(Hash)
- UVA 12338 Anti-Rhyme Pairs
- Anti-Rhyme Pairs - UVa 12338 哈希
- UVA - 12338 Anti-Rhyme Pairs (哈希)
- UVA 12238 Anti-Rhyme Pairs(hash+二分)
- UVA 12338 - Anti-Rhyme Pairs(后缀数组+RMQ)
- uva 12338 - Anti-Rhyme Pairs(后缀数组+RMQ)
- UVA 12338 Anti-Rhyme Pairs (字符串哈希+二分)
- [UVa 12338] Anti-Rhyme Pairs (字符串哈希+二分)
- uva12338 - Anti-Rhyme Pairs 询问最长公共前缀 HASH+二分
- uva12338 Anti-Rhyme Pairs (字符串hash+二分)
- 每次询问求出两个字符串的最长公共前缀的长度 后缀数组+RMQ+lcp UVA 12338 - Anti-Rhyme Pairs
- UVA12338Anti-Rhyme Pairs(哈希+二分最长前缀)
- 【Hash+拓扑】2017.10.20杂题[Rhyme]题解
- UVA 1566 - John(anti-Nim)
- oracle执行计划hash join anti
- Uva 188 Perfect Hash
- UVa 188 - Perfect Hash
- Unrecognized Windows Sockets error: 0: JVM_Bind 异常解决办法
- 可知:南京满天飞的“毛絮”竟是虫子!
- Visual Studio 2013 Ultimate 激活码
- I2C总线硬件基础
- 【中字视频】Surface Pro 3上手简评
- Uva 12338: Anti-Rhyme Pairs(Hash)
- jQuery中的live绑定多个事件整理
- 利用Observable、Observer实现观察者模式
- 超萌小白虎、小熊猫、神仙龙,气球狗
- ps制作一双时尚的高跟鞋教程
- 关于UI在写串口通讯程序是闪退的处理方法
- 浅谈23种设计模式(后期会细谈)
- 在Myeclipse中配置 jboss 图解
- 开发中可能会用到的几个 jQuery 小提示和技巧