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;
}