pbds全RE求助
查看原帖
pbds全RE求助
543559
jgysb楼主2023/11/16 22:01

rt,好多次了,每次都全RE不知道为啥。是因为树的合并必须手写吗? RE信息:Runtime Error. Received signal 6: Aborted / IOT trap.

#include<iostream>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace std;
using namespace __gnu_pbds;
tree<pair<int,int>,null_type,less<pair<int,int> >,rb_tree_tag,tree_order_statistics_node_update> tr[100005];
int fa[100005];
int find(int a)
{
	return fa[a]==a?a:fa[a]=find(fa[a]);
}
int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	int n,m;
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	{
		fa[i]=i;
		int x;
		cin>>x;
		tr[i].insert({x,i});
	}	
	for(int i=1;i<=m;i++)
	{
		int x,y;
		cin>>x>>y;
		int fx=find(x),fy=find(y);
		tr[fx].join(tr[fy]);
		fa[fy]=fx;
	}
	int q;
	cin>>q;
	for(int i=1;i<=q;i++)
	{
		char op;
		cin>>op;
		if(op=='Q')
		{
			int x,y;
			cin>>x>>y;
			int fx=find(x);
			if(y>tr[fx].size())
			{
				cout<<-1<<"\n";
				continue;
			}
			cout<<tr[fx].find_by_order(y-1)->second<<"\n";
		}
		else
		{
			int x,y;
			cin>>x>>y;
			int fx=find(x),fy=find(y);
			if(fx==fy)
			{
				continue;
			}
			tr[fx].join(tr[fy]);
			fa[fy]=fx;
		}
	}
} 
2023/11/16 22:01
加载中...