hash值的计算与转换 分类: ACM TYPE 2015-05-07 17:49 36人阅读 评论(0) 收藏
#include <bits/stdc++.h> using namespace std; const int MAXN = 100; const int X = 3; long long f[1005]; void init() { f[0] = 1; for(int i = 1;i < MAXN; i++) { f[i] = f[i-1]*X; } } int hash(string num) { int ans = 0; for (int i = 0; i < num.length(); ++i) ans = ans*f[i] + num[i] - '0'; return ans; } int convert(string num, char c,int d) { int len = num.length(); int h = hash(num); return ((c-num[d])*f[len-d-1] + h); } int main() { freopen("in.in","r",stdin); init(); cout<<hash("33")<<endl; cout<<convert("33",'1',0); return 0; }
一直以来碰到哈希问题就怂了一逼,哪里敢去做
终于决定不能在这样下去了,所以,总结了哈希值的计算,和哈希值的转换函数
助各位客官超超神
版权声明:本文为博主原创文章,未经博主允许不得转载。
本文为博主原创文章,未经博主允许不得转载。