20分求助
查看原帖
20分求助
713437
chou_chou楼主2023/10/19 13:59

NO!!!

#include<bits/stdc++.h>
using namespace std;
struct yy{
	int cg;
	int ck;
};
yy m[1000005];
int n[100005];
int k[100005];
int k1[100005];
bool cmp(yy x,yy y){
	if(x.cg!=y.cg){
		return x.cg<y.cg;
	}
	return x.ck<y.ck;
}
void f(int cs){
	if(k[cs]==1){
		return ;
	}
	k[cs]=1;
	if(n[cs]==0){
		cout<<cs<<" ";
		return ;
	}
	cout<<cs<<" ";
	for(int i=n[cs];m[i].cg==cs;i++){
		f(m[i].ck);
	}
	return ;
}
void f1(int cs){
	if(k[cs]==1){
		return ;
	}
	k[cs]=1;
	k1[cs]=1;
	for(int i=n[cs];m[i].cg==cs;i++){
		if(k1[m[i].ck]==0){
			cout<<m[i].ck<<" ";
			k1[m[i].ck]=1;
		}
	}
	for(int i=n[cs];m[i].cg==cs;i++){
		f1(m[i].ck);
	}
	return ;
}
int main(){
	int a,b;
	cin>>a>>b;
	for(int i=1;i<=b;i++){
		cin>>m[i].cg>>m[i].ck;
	}
	sort(m+1,m+1+b,cmp);
	for(int i=1;i<=b;i++){
		if(n[m[i].cg]==0){
			n[m[i].cg]=i;
		}
	}
	f(1);
	for(int i=1;i<=a;i++){
		k[i]=0; 
	}
	cout<<endl<<1<<" ";
	f1(1);
	return 0;
}
2023/10/19 13:59
加载中...