1 条题解
-
0
#include<bits/stdc++.h> using namespace std; const int N=210; vector<int>G[N]; int n,m,b[N];bool v[N],flg; void dfs(int x,int dep) { if(dep>n){flg=1;return ;} for(int y:G[x])if(v[y]==0) { b[dep]=y;v[y]=1; dfs(y,dep+1); if(flg==1) return; b[dep]=0;v[y]=0; } } int main() { scanf("%d%d",&n,&m); for(int i=1,x,y;i<=m;i++)scanf("%d%d",&x,&y), G[x].push_back(y); memset(v,0,sizeof(v)); b[1]=1;v[1]=1;flg=false;//当前在1号点(一开始可以从任意点出发),准备找第2个点 dfs(1,2); if(flg==false)printf("NO\n"); else for(int i=1;i<=n;i++)printf("%d ",b[i]); return 0; }
- 1
信息
- ID
- 454
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 5
- 标签
- 递交数
- 66
- 已通过
- 27
- 上传者