萌新今天上学脑子抽抽想了这么一种类似于链式前向星的去重方法
用这一道题做了个试验
RE On #2,#9,#10
想问一下大佬萌这种算法有没有学名或者有没有优化空间/kk
数据也下载不下来也没法调
绝望/kk
#include <bits/stdc++.h>
using namespace std;
int n, ans;
char s[1505];
int v[160000][65], cnt;
inline int trans(char x)
{
if (isdigit(x))
return x - 48;
else if (x >= 'a' && x <= 'b')
return x - 87;
else
return x - 28;
}
inline int check()
{
int len = strlen(s);
int flag = 0;
for (int i(0), cur(0); i < len; ++i)
{
int tmp = trans(s[i]);
if (v[cur][tmp] == 0)
{
flag = 1;
cur = v[cur][tmp] = ++cnt;
}
else
cur = v[cur][tmp];
}
return flag;
}
int main()
{
scanf("%d", &n);
while (n--)
{
scanf("%s", s);
if (check())
++ans;
}
printf("%d\n", ans);
return 0;
}