40分求调,后面三个数据TLE,求一个能快读的方法,网上的都试了都会Re
查看原帖
40分求调,后面三个数据TLE,求一个能快读的方法,网上的都试了都会Re
1214977
Suspicious_spy楼主2024/2/29 12:18
#include<iostream>
using namespace std;

typedef struct man{
	int No;
	struct man * next;
}Man, * PMan;

void traver(PMan head){
	PMan temp = new Man;
	temp = head->next;
	while(temp!= NULL){
		cout<<temp->No<<' ';
		temp = temp->next;
	}
}

int main(){
	int N;
	cin>>N;
	PMan headman = new Man;
	headman->next = NULL;
	PMan one = new Man;
	one->No = 1;
	headman->next = one;
	one->next = NULL;
	int t1, t2;
	for(int i = 2;i <= N;++i){
		scanf("%d%d",&t1,&t2);
		PMan newman = new Man;
		PMan temp = new Man;
		temp = headman;
		while(1){
			if(temp->next->No == t1){
				if(t2 == 0){//往左边插入
					newman->No = i;
					newman->next = temp->next;
					temp->next = newman;
					break;
				}
				else{//往右边插入
					newman->No = i;
					newman->next = temp->next->next;
					temp->next->next = newman;
					break;
				}
			}
			temp = temp->next;
		}
	}
	cin>>t1;
	while(t1--){
		scanf("%d",&t2);
		PMan temp = new Man;
		temp = headman;
		while(temp->next != NULL){
			if(temp->next->No == t2){
				PMan q = new man;
				q = temp->next;
				temp->next = q->next;
				delete q;
				break;
			}
			temp = temp->next;
		}
	}
	traver(headman);
	cout<<endl;
	return 0;
}
2024/2/29 12:18
加载中...