#include<bits/stdc++.h>
using namespace std;
const int NUM=1e4+6;
vector<int> g[NUM];
int vis[NUM][NUM];
int n,m;
void dfs(int u){
for(int v:g[u]){
if(!vis[u][v]) continue;
vis[u][v]--; dfs(v);
}
cout<<u<<endl;
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
cin>>n>>m;
for(int i=1;i<=m;i++){
int u,v; cin>>u>>v;
vis[u][v]++; vis[v][u]++;
g[u].push_back(v);
g[v].push_back(u);
}
dfs(1);
return 0;
}
这样直接MLE(甚至short都过不了)
若改为
#include<bits/stdc++.h>
using namespace std;
const int NUM=1e4+6;
vector<int> g[NUM];
char vis[NUM][NUM];
int n,m;
void dfs(int u){
for(int v:g[u]){
if(!vis[u][v]) continue;
vis[u][v]--; dfs(v);
}
cout<<u<<endl;
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
cin>>n>>m;
for(int i=1;i<=m;i++){
int u,v; cin>>u>>v;
vis[u][v]++; vis[v][u]++;
g[u].push_back(v);
g[v].push_back(u);
}
dfs(1);
return 0;
}
则AC
???这题啥啊???这么严格吗??