RT.
Link
哈希,用于处理一些大值统计方面问题,它的下位是堆排?(c,不存在下位的),当数值特别大的时候,堆的数组就会炸掉。于是哈希将这些特别大的数除上一个质数,得到一个位置存这个特别大的数。(然后就正常用,每次就找到这个得出的位置)由于除的是质数,所以一般情况,不同的数得到的位置是不会冲突的。如果冲突了,那么就存的这个位置的后面,或者往后找一个新的位置存下来。
这题要我们求n个字符串中不重复的有多少,那么我们就每读入一个字符串,就将它用一个规则转换成数码,然后%P,得到位置存下来。不同位置存的字符串都是不一样哒,如果位置一样而不同的话,如上处理。这样我们就可以较少次数地找到相同的字符串,得到答案。
代码如下。
#include<cstdio>
#include<iostream>
#include<cstring>
using