刚学hash求助,30pts
查看原帖
刚学hash求助,30pts
313137
qqqqq111楼主2021/5/19 21:52

评测记录

rt,QwQ

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
#include<ctime>
#include<algorithm>
#include<cctype>
#include<cstdlib> 
#include<iomanip>
#include<stack>
#include<map>
#include<set>
#include<queue>
#include<list>
#define mod 23333
#define k 233
using namespace std;
vector<int> liker[mod+2];
int n;
string s;
int ans;
inline int col(string s)
{
	int len=s.size();
	int hash;
	for(int i=0;i<len;i++)
		hash=(hash*k+int(s[i]))%mod;
	return hash;
}
inline void insert(int x)
{
	int a=x%mod;
	int len=liker[a].size();
	for(int i=0;i<len;i++)
		if(liker[a][i]==x)
			return ;
	liker[a].push_back(x);
	ans++;
}
int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cin>>n;
	for(int i=1;i<=n;i++)
		cin>>s,insert(col(s));
	cout<<ans;
	return 0;
}

2021/5/19 21:52
加载中...