学长讲课的代码,这算正解吗?
查看原帖
学长讲课的代码,这算正解吗?
1120417
douhuazhenren1楼主2024/5/8 17:06
#include<iostream>
#include<set>
#include<cstring>
#include<cstdio>
#define ULL unsigned long long 
using namespace std;
const ULL zh=1145141;
int n,len;
ULL na=1,sum=0,now;
char a[10000];
set<ULL>s;
int main()
{
	cin>>n;
	while(n--)
	{
	    cin>>a+1;
	    len=strlen(a+1);
	    now=1;
	    for(int i=1;i<=len;i++)
	    {
	        now=now*zh+(ULL)a[i];
	    }
	    if(s.count(now)==1)
	    {
	        continue;
	    }
	    else
	    {
	        sum++;
	        s.insert(now);
	    }
	}
	cout<<sum<<endl;
	return 0;
}

不是这个和直接用set有什么区别吗?这个还有概率重复,用set应该就不会重复了吧

2024/5/8 17:06
加载中...