https://www.luogu.com.cn/problem/P8604
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m,u,v,a[1005][1005],cnt,b[2005],c[2005],ans,k[1005];
void dfs(int t,int u){
if(u==v){
for(int i=1;i<t;i++)
cout<<b[i]<<' ',c[b[i]]++;
cout<<endl;
cnt++;
return;
}
for(int i=1;i<=n;i++)
{
if(a[u][i]>0&&k[i]==0) b[t]=i,k[i]=1,dfs(t+1,i),b[t]=0,k[i]=0;
}
}
signed main(){
cin>>n>>m;
for(int i=1;i<=m;i++)
cin>>u>>v,a[u][v]++,a[v][u]++;
cin>>u>>v;
dfs(1,u);
if(cnt==0) cout<<-1;
else{
for(int i=1;i<=n;i++)
if(c[i]>1) ans++;
cout<<ans-1;
}
}
样例没问题,但没一个测试点对