
hash
进修中的涵涵涵
acm退役选手
acm icpc 金
dota爱好者
展开
-
UVA 10085 The most distant state (hash隐式图搜索)
题意:给出初始图找出可达目标图,步数最多的一个,并输出路径。 这题很像八数码格。情况有9!种。 用康托展开来进行哈希(哈希值等于当前数是未出现数字中第几个,然后乘上(n-i)!) 比如 1 3 2 0 4 那么hash=1*4!+2*3!+1*2!+0*1!+0*0!; 然后进行bfs,用一个vis数组标记已经出现过的状态(hash值) 那么队列种最后留下来的肯定就是步数最多的了。 A原创 2017-02-24 00:29:22 · 471 阅读 · 0 评论 -
UVA - 10282 Babelfish (字符串hash)
字符串hash模板题 字符串hash模板int get_hash(char *s) { int seed=131;//可以用其他代替 int hash=0; for(int i=0;s[i]!='\0';i++) { hash=hash*seed+(s[i]-'a'); } return (hash & 0x7FFFFFFF)%mod原创 2017-03-03 17:32:38 · 431 阅读 · 0 评论 -
UVA - 10391 Compound Words (字符串hash)
题意:找出由两个字符串拼起来的字符串输出 暴力搜索切点分开字符串,查找有没有两断都存在的 通过字符串hash散列 AC代码#include<stdio.h> #include<string.h> char a[120500][20]; int head[120500]; int next1[120500]; int get_hash(char *s) { int hash=0;原创 2017-03-03 17:37:38 · 479 阅读 · 0 评论 -
字符串哈希(Hash模板)
struct Hash { int hash[50500]; int head[50500]; int next[50500]; int mod=10007; char mp[50500][20]; void init() { memset(hash,0,sizeof(hash)); memset(head,-1,sizeof(head)); memset(next,-1原创 2017-06-20 21:20:47 · 633 阅读 · 0 评论