E WA*19 求调
  • 板块学术版
  • 楼主wangyinghao
  • 当前回复6
  • 已保存回复7
  • 发布时间2025/8/2 21:57
  • 上次更新2025/8/3 14:07:12
查看原帖
E WA*19 求调
453759
wangyinghao楼主2025/8/2 21:57
#include<iostream>
#include<vector>
#include<cstring>
#include<algorithm>
using namespace std;
vector<int> v[1005];
int y,flag,route[1005],n,ans;
bool vis[1005];
void dfs(int x,int cnt){
	if(flag) return ;
	route[cnt]=x;
	ans=cnt;
	vis[x]=1;
	if(x==y){
		flag=1;
		return ;
	}
	for(int i=0;i<v[x].size();i++){
		int nx=v[x][i];
		if(!vis[nx]){
			dfs(nx,cnt+1);
		} 
	}
}

int main(){
	int t;
	cin>>t;
	while(t--){
		int m,x;
		cin>>n>>m>>x>>y;
		for(int i=1;i<=m;i++){
			int u,w;
			cin>>u>>w;
			v[u].push_back(w);
			v[w].push_back(u);
		}
		for(int i=1;i<=n;i++){
			sort(v[i].begin(),v[i].end());
		}
		dfs(x,1);
		for(int i=1;i<=ans;i++){
			if(!route[i]) break;
			cout<<route[i]<<" ";
			v[i].clear();
		}
		cout<<'\n';
		flag=0;
		memset(vis,0,sizeof(vis));
		memset(route,0,sizeof(route));
	}
	return 0;
}

不确定是不是做法假了

2025/8/2 21:57
加载中...