字典树求助
  • 板块题目总版
  • 楼主a16_
  • 当前回复1
  • 已保存回复1
  • 发布时间2022/4/29 21:53
  • 上次更新2023/10/28 02:38:10
查看原帖
字典树求助
416388
a16_楼主2022/4/29 21:53

P1571 眼红的Medusa 的一种奇怪的思路

评测记录

代码如下

#include<bits/stdc++.h>
using namespace std;
const int N=1e7+10;
int trie[N][10],cnt;
bool e[N];
void insert(int v){
	int p=0;
	while(v){
		int u=v%10;
		v/=10;
		if(!trie[p][u])
			trie[p][u]=++cnt;
		p=trie[p][u];
	}
	e[p]=1;
}
int find(int v){
	int p=0;
	while(v){
		int u=v%10;
		v/=10;
		p=trie[p][u];
		if(!p) return 0;
	}
	if(e[p]) return p;
	else return 0;
}
struct ans{
	int lev,id;
}a[100010];
int la=0;
bool cmp(ans x,ans y){
	return x.lev<y.lev;
}
int main(){
	int n,m,t;
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++){
		scanf("%d",&t);
		insert(t);
	}
	for(int i=1;i<=m;i++){
		scanf("%d",&t);
		int k=find(t);
		if(k){
			la++;
			a[la].id=t;
			a[la].lev=k;
		}
	}
	sort(a+1,a+la+1,cmp);
	for(int i=1;i<=la;i++){
		printf("%d ",a[i].id);
	}
	return 0;
}
2022/4/29 21:53
加载中...