HzuMomoc


私信TA

用户名:932521665

访问量:35971

签 名:

记得在搬砖中多摸鱼!!!

等  级
排  名 90
经  验 9080
参赛次数 8
文章发表 68
年  龄 0
在职情况 在职
学  校 贺州学院
专  业

  自我简介:

解题思路:
使用字典树来解。

字典树传送门。

https://blog.csdn.net/qq_38891827/article/details/80532462

注意事项:

    边插入边统计,如果当前字符串结尾下标已经被标记,就不对答案做贡献,否则ans++.
参考代码:

#include <bits/stdc++.h>
using namespace std;
const int N =2e5+5;
unsigned tree[N][30];
bool flag[N] = {0};
int tot;
int ans = 0;
void insert(char *str){
	int len = strlen(str);
	int root = 0;
	for(int i=0;i<len;i++){
		int id = str[i] - 'a';
		if(!tree[root][id]) tree[root][id] = ++tot;
		root = tree[root][id];
	}
	if(flag[root]==1 ) {
		return ;
	}
	flag[root] = 1;
	ans++;
}
int main ()
{	
	char s[101];
	tot = 0;
	while(scanf("%s",s)!=EOF){
		insert(s);
	}
	
	cout<<ans<<endl;
	return 0;
}


 

0.0分

0 人评分

  评论区

  • «
  • »