注意点:
- map直接用[]访问即可.
#include<cstdio> #include<iostream> #include<map> #define ul unsigned long long using namespace std; const int MAXN=4000; map<ul,bool> has_; ul base=101; ul hashs[MAXN]; ul tmp[MAXN]; ul getHash(string str){ ul hash_=0; for(int i=1;i<=str.length();i++){ hashs[i]=hashs[i-1]*base+str[i-1]; } hash_=hashs[str.length()]; return hash_; } int main(){ int n; scanf("%d",&n); int cnt=0; for(int i=1;i<=n;i++){ string tmp; cin>>tmp; ul nowHash=getHash(tmp); if(has_[nowHash])continue; has_[nowHash]=1; cnt++; } printf("%d\n",cnt); return 0; }