#10049. 「一本通 2.3 例 1」Phone List
  • 板块学术版
  • 楼主南瓜桐
  • 当前回复1
  • 已保存回复1
  • 发布时间2022/1/18 18:16
  • 上次更新2023/10/28 12:02:09
查看原帖
#10049. 「一本通 2.3 例 1」Phone List
439327
南瓜桐楼主2022/1/18 18:16

题目
wddm:

#include<iostream>
#include<string>
#include<cstring>
using namespace std;
const int maxx = 50*(1e+4) + 1;
bool f = true;
int zd[maxx][42]={},cnt=1;
bool bj[maxx]={};
void pd(string str){
	int fa = 1;
	int len = str.size();
	for(int i=0;i<len;++i){
		int c = str[i] - '0';
		if(!zd[fa][c]){
			zd[fa][c] = ++cnt;
		}else if(bj[zd[fa][c]] == true){
			cout<<"NO"<<endl;
			f = false;
		}
		fa = zd[fa][c];
	}
	bj[fa] = true;
	return;
}
int main(){
	int t=0,n=0;
	cin>>t; ++t;
	string x;
	while(--t){
		cnt=0;
		memset(bj,0,sizeof(bj));
		memset(zd,0,sizeof(zd));
		f = true;
		cin>>n;
		for(int i=1;i<=n;++i){
			cin>>x;
			pd(x);
		}	
		if(f == true){
			cout<<"YES"<<endl;
		}
	}
	return 0;
}
2022/1/18 18:16
加载中...