萌新求助,后4个点TLE
查看原帖
萌新求助,后4个点TLE
217743
sc84bbs楼主2020/7/30 10:55

RT

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cctype>
#include<cmath>
#include<queue>
#include<cstring>
using namespace std;
int n,m; 
struct edge{
	int from,to;
}qwq[1000005];
bool cmp(edge a,edge b){
	if(a.from==b.from){
		return a.to<b.to;
	} 
	return a.from>b.from;
}
bool view[1000005];
void dfs(int now){
	view[1]=1;
	printf("%d ",now);
	//cout<<now<<" ";
	for(int i=1;i<=m;i++){
		if(qwq[i].from==now&&!view[qwq[i].to]){
			view[qwq[i].to]=1;
			dfs(qwq[i].to);
	//		view[qwq[i].to]=0;
		
		}
	}
}
queue<int>sto;
void bfs(int now){
	sto.push(now);
	view[1]=1; 
	int sum=0;
	for(int qqq=0;qqq<n;qqq++){
		for(int i=1;i<=m;i++){
			if(qwq[i].from==sto.front()&&!view[qwq[i].to]){
				view[qwq[i].to]=1;
				sto.push(qwq[i].to); 
			}	
		}
		printf("%d ",sto.front());
	//	cout<<sto.front()<<" ";
		sto.pop();
		sum++;
		if(sum==n)break;
	}
	
}
int main(){

	scanf("%d%d",&n,&m);
	memset(view,0,sizeof(view));
	memset(qwq,0,sizeof(qwq));
	qwq[0].from=998244353;
	qwq[0].to=998244353;
	for(int i=1;i<=m;i++){
		scanf("%d%d",&qwq[i].from,&qwq[i].to); 
	//	cin>>qwq[i].from>>qwq[i].to;
	}
	sort(qwq,qwq+m+1,cmp);
	dfs(1);
	printf("\n");
	memset(view,0,sizeof(view));
	bfs(1);
	return 0;
}

不过话说这种题没A还没调出来还是很沮丧的 求助

2020/7/30 10:55
加载中...