功能    
        O(N)的时间预处理所有前缀hash值
        O(1)的时间内查询任意字串hash值

原理    
        取固定值p,把字符串看作p进制数,并分配一个大于0的数代表每种字符
        取固定值m,求p进制数对m的余数作为该字符串的hash值
        p=131  m=unsigned long long (2^64)

预处理   
        ull p[N],h[N];
        p[0]=1;
        for(int i=1;i<=n;i++)
        {
            p[i]=p[i-1]*131;
            h[i]=h[i-1]*131+str[i];
        }


查询    
        ull get(int l,int r)
        {
            return h[r]-h[l-1]*p[r-(l-1)];
        }