好奇怪
查看原帖
好奇怪
1275819
nzlys04楼主2024/8/20 11:52
这是我40分代码
#include<bits/stdc++.h>
using namespace std;

struct node{
	int data;
	int nxt,last;
}a[100005];

int main(){
	int n,m,x,head=1,j=1;
	cin>>n;
	a[1].last=0;
	for(int i=2;i<=n;i++){
		int k,p;
		cin>>k>>p;
		if(p==0){//? k   i---> ? i k
			a[a[k].last].nxt=i;
			a[i].nxt=k;
			a[i].last=a[k].last;
			a[k].last=i;
			if(k==j)
				head=i,j=i;
		}
		else{//k ?  i--->k i ?
			a[a[k].nxt].last=i;
			a[i].last=k;
			a[i].nxt=a[k].nxt;
			a[k].nxt=i;
		}
	}
	cin>>m;
	while(m--){
		cin>>x;
		a[a[x].last].nxt=a[x].nxt;
		a[a[x].nxt].last=a[x].last;
		if(x==head)head=a[x].nxt;
	}
	int i=head;
	while(i){
		cout<<i<<" ";
		i=a[i].nxt;
	}
	return 0;
} 
这是我100分代码
#include<bits/stdc++.h>
using namespace std;

struct node{
	int data;
	int nxt,last;
}a[100005];

int main(){
	int n,m,x,head=1,j=1;
	cin>>n;
	a[1].last=0;
	for(int i=2;i<=n;i++){
		int k,p;
		cin>>k>>p;
		if(p==0){//? k   i---> ? i k
			a[a[k].last].nxt=i;
			a[i].nxt=k;
			a[i].last=a[k].last;
			a[k].last=i;
			if(k==j)
				head=i,j=i;
		}
		else{//k ?  i--->k i ?
			a[a[k].nxt].last=i;
			a[i].last=k;
			a[i].nxt=a[k].nxt;
			a[k].nxt=i;
		}
	}
	cin>>m;
	while(m--){
		cin>>x;
		a[a[x].last].nxt=a[x].nxt;
		a[a[x].nxt].last=a[x].last;
		if(x==head)head=a[x].nxt;
		a[x].nxt=a[x].last=0;
	}
	int i=head;
	while(i){
		cout<<i<<" ";
		i=a[i].nxt;
	}
	return 0;
} 

不加a[x].nxt=a[x].last=0;就只有40分,为什么呀

2024/8/20 11:52
加载中...