2:(原理)
3:(其中原理之一)
ACcode:
1:
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
typedef unsigned long long ull;//***类型
const int N=1e5+10;
ull base=131;
ull a[N],cnt=1;
string s;
int n;
ull hashs(string s){//***
ull res=0;
for(int i=0;i<s.size();i++){
res=res*base+(ull)s[i];
}
return res;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>s;
a[i]=hashs(s);
}
sort(a+1,a+1+n);
for(int i=2;i<=n;i++){
if(a[i]!=a[i-1]){
cnt++;
}
}
cout<<cnt;
return 0;
}
2:
也可以偷偷用c++的stl,set水过,哈哈哈哈
#include<iostream>
#include<set>
#include<string>
using namespace std;
set<string>s;
int n;
string p;
int main(){
cin>>n;
while(n--){
cin>>p;
s.insert(p);
}
cout<<s.size();
return 0;
}
over~点个赞吧,哥哥姐姐