3个TLE,玄关求调,数组结构体
查看原帖
3个TLE,玄关求调,数组结构体
1273558
Flax_shiep楼主2024/7/21 20:42
#include<iostream>
using namespace std;
int n,x;
struct ls{
	int l,r;
}lb[100010];
void in(int i,int p,int k){
	int pos=0;
	while(lb[pos].r!=i){
		pos=lb[pos].r;
	}
	if(p==0){
		int po=pos;
		pos=lb[pos].r;
		lb[po].r=k;
		lb[k].l=po;
		lb[pos].l=k;
		lb[k].r=pos;
	}
	else{
		pos=lb[pos].r;
		int po=lb[pos].r;
		lb[pos].r=k;
		lb[k].l=pos;
		lb[po].l=k;
		lb[k].r=po;
	}
}
void de(int x){
	int pos=0;
	while(lb[pos].r!=x){
		pos=lb[pos].r;
		if(lb[pos].r==100009)return;
	}
	pos=lb[pos].r;
	lb[lb[pos].l].r=lb[pos].r;
	lb[lb[pos].r].l=lb[pos].l;
}
int main(){
    cin>>n;
    int k,p,m;
    lb[0].r=1;
    lb[1].l=0;
    lb[1].r=100009;
    for(int i=1;i<n;i++){
    	cin>>k>>p;
    	in(k,p,i+1);
	}
	cin>>m;
	for(int i=0;i<m;i++){
    	cin>>x;
    	de(x);
	}
	for(int i=0;lb[i].r!=100009;i=lb[i].r){
		cout<<lb[i].r<<' ';
	}
	return 0;
}
2024/7/21 20:42
加载中...