poj2503(字符串hash)

    xiaoxiao2023-05-26  5

    这是用hash不是比较相不相同,这是用来存储,

    取模质数!!!9191891!!!

    #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<map> using namespace std; const int mod=9191891; int n,m; char wd[100005][12],s[50],tt; int hs[10000050]; int geths(char *s) { int len=strlen(s),ans=0; for (int i=0;i<len;i++) ans=(ans*29+s[i]-'a')%mod; return ans; } int main() { while ((wd[++n][0]=getchar())!='\n') { scanf("%s%s",wd[n]+1,s); hs[geths(s)]=n; tt=getchar(); } while (scanf("%s",s)!=EOF) { int t=geths(s); if (hs[t]) printf("%s\n",wd[hs[t]]);else printf("eh\n"); } return 0; }

    转载请注明原文地址: https://ju.6miu.com/read-1260732.html
    最新回复(0)