码迷,mamicode.com
首页 > 其他好文 > 详细

几道hash题

时间:2015-03-16 22:40:16      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:

1:

UVa 10887 - Concatenation of Languages

map 可以做 ,但是输入实在恶心,有空串之类的HASH模板:

           
int Hash(char *s)
{
   int seed=131,sum=0;
   while (*s)
   sum=sum*seed+(*s++);
   return (sum&0x7FFFFFFF)%N;
}

void hash_insert(int s)
{
   int h=Hash(c[s]);
   int u=head[h];
   while (u)
   {
     if (!strcmp(c[s],c[u]))
     {
      return;
     }
     u=next[u];
   }
   next[s]=head[h];
   head[h]=s;
   ++ans;
}虽然简单,但是要灵活用好也比较费力。

   

几道hash题

标签:

原文地址:http://www.cnblogs.com/forgot93/p/4342803.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!