抢沙发是____的传统美德,请为有需要的人抢沙发,谢谢。

#include<bits/stdc++.h>
using namespace std;
int trie[10001][26],hv[10001],maxn=0,pt=0;
void insert(string s){//插入
	int nw=0,zc=0;//nw为当前位置,zc为子串数量
	for(int i=0;i<s.size();i++){
		int nc=s[i]-'a';//映射(好高级的词汇)
		if(!trie[nw][nc]){
			trie[nw][nc]=++pt;//开始是0,先加再存
		}
		nw=trie[nw][nc];
		zc+=hv[nw];
	}
	maxn=max(maxn,zc+1);//本身也算一个 
	hv[nw]++;//代表这里有一个单词 
}
int main(){
	int n;
	cin>>n;
	while(n--){
		string a;
		cin>>a;
		insert(a);
	}
	cout<<maxn;
} 

嚘鳷屜跲,鰏緒癜囋!

0 comments

No comments so far...

Information

ID
473
Time
1000ms
Memory
256MiB
Difficulty
3
Tags
# Submissions
1
Accepted
1
Uploaded By