1137. Bus Routes(dfs)

时间:2023-03-09 04:16:35
1137. Bus Routes(dfs)

1137

做过一样的 怎么又忘了 再一次搜超时

不用回溯

 #include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<stdlib.h>
#include<vector>
#include<queue>
using namespace std;
#define N 10010
int n,m;
vector<int>ed[N];
bool vis[N][N];
int pa[],t;
void dfs(int u)
{
int i;
for(i = ; i < (int)ed[u].size() ; i++)
{
int v = ed[u][i];
if(!vis[u][v])
{
vis[u][v] = ;
dfs(v);
}
}
t++;
pa[t] = u;
return ;
}
int main()
{
int i,j,u,v;
scanf("%d",&n);
for(i = ; i <= n ; i++)
{
scanf("%d",&m);
scanf("%d",&u);
for(j = ; j <= m ; j++)
{
scanf("%d",&v);
ed[u].push_back(v);
u = v;
}
}
dfs();
printf("%d\n",t-);
for(i = t; i > ; i--)
printf("%d ",pa[i]);
printf("%d\n",pa[]);
return ;
}