dfs新学,#2,4,5WA求调
查看原帖
dfs新学,#2,4,5WA求调
1184863
CKRITO楼主2024/3/4 00:00
#include<bits/stdc++.h>
#define ll long long
#define N 2100
using namespace std;
int arr[N][3];
int vis[N];
int ans;
int x,y;
int n,m;
void dfs(int temp,int cnt){
	if(temp==y)  {
		if(cnt<ans)ans=cnt;
		//cout<<cnt<<"cccccccccccccccc"<<endl;
		return ;
	}
	for(int i=1;i<=m;i++){
		//cout<<i<<" "<<temp<<" "<<cnt<<endl;
		if(vis[i]!=1&&(arr[i][1]==temp||arr[i][2]==temp)){
			vis[i]=1;
			int t=temp;
			if(arr[i][1]==temp)t=arr[i][2];
			else t=arr[i][1];
			//cout<<cnt<<" "<<temp<<"->"<<t<<endl;
			//cout<<" "<<i<<" "<<t<<endl;
			if(cnt+1>ans){
				return ;
			}else dfs(t,cnt+1);
			vis[i]=0;
		}
	}
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		cin>>arr[i][1]>>arr[i][2];
	}
	cin>>x>>y;
	ans=3000;
	dfs(x,0);
	cout<<ans-1;
    return 0;
}

#2 4 5 WA 菜鸡新学求调

2024/3/4 00:00
加载中...