求大佬看一下我的这个写法能不能优化(我个人感觉好麻烦)
查看原帖
求大佬看一下我的这个写法能不能优化(我个人感觉好麻烦)
574879
weiegzqs楼主2022/6/15 20:01
#include<bits/stdc++.h>
using namespace std;
const int N=10010,P=131;
typedef unsigned long long ULL;
ULL p[N],h[N],a[N];
char str[N];
ULL get(char str[])
{
	int len=strlen(str);
	for (int i=1;i<=len;i++)
	{
		h[i]=h[i-1]*P+str[i];
		p[i]=p[i-1]*P;
	}
	return h[len]-h[1]*p[len];
}
int main()
{
	int n,ans=1;
	scanf("%d",&n);
	for (int i=1;i<=n;i++)
	{
		scanf("%s",str);
		a[i]=get(str);
	}
	sort(a+1,a+n+1);
	for (int i=2;i<=n;i++)
	{
		if (a[i]!=a[i-1]) ans++;
	}
	cout<<ans<<endl;
	return 0;
}
2022/6/15 20:01
加载中...