不理解,为什么会MLE?
查看原帖
不理解,为什么会MLE?
333709
_WRYYY_楼主2021/12/16 17:31

RT

题解也是vector存图,我也是vector存图,为什么我MLE啊 评测记录

调了半个多小时QWQ,求大佬帮忙看一下

#include<bits/stdc++.h>
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/tree_policy.hpp>
#include<ext/pb_ds/hash_policy.hpp>
#include<ext/pb_ds/trie_policy.hpp>
#include<ext/pb_ds/priority_queue.hpp>
#define ll  long long
#define ull unsigned long long
using namespace std;
using namespace __gnu_pbds;
inline int read(){
   int s=0,w=1;
   char ch=getchar();
   while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
   while(ch>='0'&&ch<='9')s=(s<<1)+(s<<3)+(ch^48),ch=getchar();
   return s*w;
}
/*inline void print(ll ch){
	if (ch<0)ch=-ch,putchar('-');
	if (ch>9)print(ch/10);
	putchar(ch%10+'0');
}*/
bool b[100001];
vector<int> a[100001];
void dfs(int fa){
	if(b[fa]==1)return ;
	//putchar(32);
	printf(" %d",fa);
	for(int i=0;i<a[fa].size();i++){
		dfs(a[fa][i]);
		b[a[fa][i]]=1;
	}
}
int main()
{
	int n=read(),m=read(),ls,ls1;
	for(int i=0;i<m;i++){
		ls=read();
		ls1=read();
		a[ls].push_back(ls1);
		//siz[ls]++;
		for(int j=a[ls].size()-1;j>0;j--){
			if(a[ls][j]<a[ls][j-1]){
				swap(a[ls][j],a[ls][j-1]);
			}
			else break;
		}
	}
	printf("1");
	b[1]=1;
	for(int i=0;i<a[1].size();i++){
		dfs(a[1][i]);
		b[a[1][i]]=1;
	}
	cout<<endl;
	queue<int> awa;
	for(int i=1;i<=n;i++)b[i]=false;
	printf("1");
	awa.push(1);
	b[1]=1;
	while(!awa.empty()){
		ls=awa.front();
		for(int i=0;i<a[ls].size();i++){
			if(b[a[ls][i]]==1)continue;
			b[a[ls][i]]=1;
			printf(" %d",a[ls][i]);
			awa.push(a[ls][i]);
		}
		awa.pop();
	}
	return 0;
}
2021/12/16 17:31
加载中...