最后两组数据tle求调
查看原帖
最后两组数据tle求调
1566502
zzzzybbn楼主2025/2/5 14:11
#include<iostream>
using namespace std;
const int N=1e7;
int e[N];
int ne[N];
int head=-1,idx=0;

int find(int x)
{
	for(int i=head;i!=-1;i=ne[i])
		if(e[i]==x)
			return i;
	return -1;
}

void insert(int x,int y)
{
	int i=find(x);
	if(e[i]==x)
	{
		e[idx]=y;
		ne[idx]=ne[i];
		ne[i]=idx;
		idx++;
	}
}

void search(int x)
{
	int i=find(x);
	if(ne[i]==-1)
		cout<<0<<endl;
	else
		cout<<e[ne[i]]<<endl;
}

void del(int x)
{
	int i=find(x);
	if(e[i]==x)
	{
		ne[i]=ne[ne[i]];
	}
}
int main()
{
	e[0]=1;
	ne[0]=head;
	head=idx;
	idx++;
	
	int n;
	cin>>n;
	while(n--)
	{
		int p;
		cin>>p;
		if(p==1)
		{
			int x,y;
			cin>>x>>y;
			insert(x,y);
		}
		else if(p==2)
		{
			int x;
			cin>>x;
			search(x);
		}
		else if(p==3)
		{
			int x;
			cin>>x;
			del(x);
		}
	}
	return 0;
}
2025/2/5 14:11
加载中...