poj 3297Open Source 解题报告(附测试数据

昨晚看了一篇关于暴雪三重hash算法的文章,有意实践一下。

以前做字符串hash的时候想到过用另一个hash_key去区别同位置的字符串(用strcmp来比较两个字符串是否相等真的好慢),但是因为理论上不可能有hash_key可以唯一的让一个string区别与另一个string,所以一直认为这么做不可行。一直用开地址链表的方法做hash.

看完暴雪三重hash这个文章之后,感觉只要选择两个(或者更多)好的hash函数,就可以在很低很低的错误概率下(如果程序要求绝对精确,则此法失效),通过两个key值来区别不同的string.

poj3297 open source

题目大意:

一个公告板,上面可以写开源项目的标题(大写字母),然后想参与的人可以写上自己的名字(小写字母),最后统计每个项目参与的人数。

如果有的人在不同的项目下面都写了名,则这个人名不计数。

题目数据题目结果数据题目官方c++程序

poj3297 open source

我的程序:

这个程序刷到了头一页上(本人很少程序能到第一页),很高兴。


不要说你改进了那个算法,把效率提高了几倍!好的算法是可以几十倍,几百倍的提高效率的! ---杨老师。



你可能感兴趣的:(open source)