63pts TLE了4个点求调
查看原帖
63pts TLE了4个点求调
1061213
liujiazhi楼主2025/7/24 10:51

如题,

这里是提交记录

#include<bits/stdc++.h>
#define ull unsigned long long
#define INF 0x3f3f3f3f
using namespace std;
const int N=1e5+5,M=1.5e4+5,B=131;
ull a[N],b[N];
int n,m,cnt,ans;
char s[N];
void ST()
{
	b[0]=1;
	for (int i=1;i<=M;i++)
	{
		b[i]=b[i-1]*B;
	}
}
int Turn(char c)
{
	if (c>='a'&&c<='z') return c-'a'+1;
	if (c>='A'&&c<='Z') return c-'A'+27;
	if (c>='0'&&c<='9') return c-'0'+53;
}
ull Hash()
{
	ull sum=0;
	for (int i=0;i<strlen(s);i++)
	{
		sum+=Turn(s[i])*b[i];
	}
	return sum;
}
int main()
{
    int k,i,j,q,x,l,r;
    scanf("%d",&n);
    ST();
    for (i=1;i<=n;i++)
	{
		scanf("%s",&s);
		a[++cnt]=Hash();
	}
	sort(a+1,a+n+1);
	for (i=1;i<=n;i++)
	{
		if(a[i]!=a[i-1]) ans++;
	}
	printf("%d\n",ans);
    return 0;
}
2025/7/24 10:51
加载中...