NYOJ 吝啬的国度(DFS)

来源:互联网 发布:淘宝gxg官方店和旗舰店 编辑:程序博客网 时间:2024/05/19 02:02

本题数据范围很大,需要用动态数组来存储数据,起初并没有意识到,还有深搜过程中的结束控制也需要注意……

http://59.69.128.200/JudgeOnline/problem.php?pid=20

#include <iostream>#include<cstdio>#include<string.h>#include<vector>using namespace std;vector<int> v[100005];//用动态数组来存储int pre[100005];void Dfs(int s){for(int i=0;i<v[s].size();i++){if(pre[v[s][i]]!=0) continue;//一定要添加上这个语句pre[v[s][i]]=s;Dfs(v[s][i]);}}int main(){//freopen("1.txt","r",stdin);int n,m,s,x,y;scanf("%d",&n);while(n--){memset(v,0,sizeof(v));memset(pre,0,sizeof(pre));scanf("%d%d",&m,&s);pre[s]=-1;for(int i=1;i<m;i++){scanf("%d%d",&x,&y);v[x].push_back(y);v[y].push_back(x);}Dfs(s);for(int i=1;i<=m;i++)printf("%d ",pre[i]);}}


原创粉丝点击