sdut 图的深度遍历

图的深度遍历

Time Limit: 1000MS Memory Limit: 65536KB
Submit Statistic Discuss

Problem Description

请定一个无向图,顶点编号从0到n-1,用深度优先搜索(DFS),遍历并输出。遍历时,先遍历节点编号小的。

Input

输入第一行为整数n(0 < n < 100),表示数据的组数。 对于每组数据,第一行是两个整数k,m(0 < k < 100,0 < m < k*k),表示有m条边,k个顶点。 下面的m行,每行是空格隔开的两个整数u,v,表示一条连接u,v顶点的无向边。

Output

输出有n行,对应n组输出,每行为用空格隔开的k个整数,对应一组数据,表示DFS的遍历结果。

Example Input

1
4 4
0 1
0 2
0 3
2 3

Example Output

0 1 2 3
#include<iostream>
#include<cstring>
using namespace std;
int map[100][100],path[10000],visit[10000]={0},l=1,n,m;
void DFS(int st,int ed)
{/*if(st==ed){for(int i=0;i<l-1;++i)cout<<path[i]<<' ';cout<<path[l-1]<<endl;}*/visit[st]=1;//标记已经访问过 for(int i=0;i<n;++i){if(!visit[i]&&map[st][i]){cout<<' '<<i; DFS(i,n-1);//--l;//visit[i]=0;//记忆化搜索 }}
}
int main()
{int t;cin>>t;while(t--){memset(visit,0,sizeof(visit));memset(map, 0, sizeof(map));  cin>>n>>m;for(int i=0;i<m;++i){int a,b;cin>>a>>b;map[a][b]=map[b][a]=1;}cout<<0;DFS(0,n-1);cout<<endl; }return 0;
}

2018/03/25更新java代码
public class Main {private static int[][] go = { { -1, 0 }, { 1, 0 }, { 0, -1 }, { 0, 1 } }; // 上下左右public static int m = 0, n = 0, s = 0;private static int[][] vis = new int[10][10];public static void main(String[] args) {int N;Scanner sc = new Scanner(System.in);N = sc.nextInt();for (int i = 0; i < N; i++) {init();m = sc.nextInt();n = sc.nextInt();int[][] a = new int[m][n];for (int i1 = 0; i1 < m; i1++) {for (int j = 0; j < n; j++) {a[i1][j] = sc.nextInt();}}dfs(a, 0, 0);System.out.println(s);s = 0;}}private static void init() {for (int i = 0; i < m; i++) {for (int j = 0; j < n; j++) {vis[i][j] = 0;}}}private static void dfs(int[][] a, int x, int y) {if (x == m - 1 && y == n - 1) {s++;return;} else {	for (int i = 0; i < 4; i++) {int xx = x + go[i][0];int yy = y + go[i][1];if (xx >= 0 && xx < m && yy >= 0 && yy < n && vis[xx][yy] ==0 && a[xx][yy]==0) { x = xx;y = yy;System.out.println("x:"+x+"--"+"y:"+y);vis[x][y] = 1;dfs(a, x, y);System.out.println("yes I do "+x+'-'+y);vis[x][y] = 0;}}}}
}


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/510262.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows pytorch环境安装配置

1.下载anaconda windows版本下载地址

赫夫曼编码

http://blog.csdn.net/webzhuce/article/details/53105831

哈佛大学凌晨四点半

哈佛老师经常给学生这样的告诫&#xff1a;如果你想在进入社会后&#xff0c;在任何时候任何场合下都能得心应手并且得到应有的评价&#xff0c;那么你在哈佛的学习期间&#xff0c;就没有晒太阳的时间。作为闻名于世的学府&#xff0c;哈佛大学培养了许多名人&#xff0c;他们…

优先队列c++ STL用法

优先队列(priority queue)普通的队列是一种先进先出的数据结构&#xff0c;元素在队列尾追加&#xff0c;而从队列头删除。在优先队列中&#xff0c;元素被赋予优先级。当访问元素时&#xff0c;具有最高优先级的元素最先删除。优先队列具有最高级先出 &#xff08;first in, l…

window 远程linux

1.我们需要在Linux安装ssh服务 sudo apt-get install openssh-server 2.然后开启ssh服务 sudo /etc/init.d/ssh start 3.在window上安装PUTTY 下载网址 4.填写Linux ip 查看ip: 在Linux输入&#xff1a;ifconfig 5.然后填写登陆Linux的账户名和密码 大功告成。。。。。…

赫夫曼编码长度计算问题?

例题&#xff1a;一组字符(a,b,c,d)在文中出现的次数分别为(7,6,3,5),字符&#xff07;d&#xff07;的哈夫曼编码的长度为&#xff1f; 题解&#xff1a; 首先构造huffman树 每一步都将所有数字排序 方法如下: 1: 3 5 6 7 2: 6 7 8 / \ 3 5 3: 8 13 / \ / \ 3 5 6 7 4: 21 /…

windows + cmake + vs2019 编程

1.安装minGW64 2.安装cmake 3.安装vs2019 4.组建代码文件结构&#xff1a; 5.在build 文件下打开git bash&#xff0c;执行一下指令 cmake .. -G"Visual Studio 16 2019" tips( vs2017 对应 cmake .. -G"Visual Studio 15 2017" ) cmake 模板…

sdut 数据结构实验之二叉树六:哈夫曼编码

#include <iostream> #include <cstdio> #include <cstring> #include <queue>using namespace std;int main() {char s[10000];while(scanf("%s",s)!EOF){priority_queue < int,vector<int>,greater<int> > Q;//利用优先…

Eigen基本操作

// 矩阵 Eigen::Matrix<float,行,列> // Eigen 中所有向量和矩阵都是Eigen::Matrix&#xff0c;它是一个模板类。它的前三个参数为&#xff1a;数据类型&#xff0c;行&#xff0c;列// 声明一个2*3的float矩阵Eigen::Matrix<float, 2, 3> matrix_23;//float类型…

所感

记住别太善良了&#xff0c;别太大方了&#xff0c;也别太能干了&#xff0c;时间久了人家会觉得&#xff0c;你做的一切都是应该的。即使有一天你撑不住&#xff0c;哭了累了&#xff0c;也没人心疼你。 因为在他们眼里这都是你愿意的。有时候心眼也别太好了不要什么事都为别人…

PCL库使用中遇到的一些问题及解决方法

a. pcl::PointCloud对象变量 与pcl::PointCloud::Ptr 对象指针 的相互转换 #include <pcl/io/pcd_io.h> #include <pcl/point_types.h> #include <pcl/point_cloud.h> // 对象指针 pcl::PointCloud<pcl::PointXYZ>::Ptr cloudPointer(new pcl:…

享受孤独

今天看见网易云音乐一个 有趣的活动。。。突发其感参与了评论“孤独”这个话题&#xff1a;

opencv 图像访问索引

//单通道获取 Scalar intensity img.at<uchar>(y, x);//行 列 Scalar intensity img.at<uchar>(Point(x, y)); 0 < intensity.val[0] < 255. // 多通道获取 8u Vec3b intensity img.at<Vec3b>(y, x); uchar blue intensity.val[0]…

使自己的注意力集中方法

英国Kent大学最近有一篇文章对注意力做出了详尽的分析&#xff0c;关于如何保持专心养成好习惯的&#xff0c;其中包括了如下几点建议&#xff1a; 养成好习惯&#xff1a;养成在固定时间、固定地点专心学习工作的好习惯。如果可能&#xff0c;在进入学习或者工作状态前做一些小…

PCL “(”:“::”右边的非法标记 和 E2512 功能测试宏的参数必须是简单标识符

PCL “(”:“::”右边的非法标记 解决方法&#xff1a; 项目属性 ——> C/C ——> 预处理器 ——> 预处理器定义 (此处添加预定义编译开关 NOMINMAX&#xff09; E2512 功能测试宏的参数必须是简单标识符 解决方法&#xff1a; 将SDL 设置为否。

最全ACM常用STL

STL 中专门用于排列的函数&#xff08;可以处理存在重复数据集的排列问题&#xff09; 头文件&#xff1a;#include <algorithm> using namespace std; 调用&#xff1a; next_permutation(start, end); 注意&#xff1a;函数要求输入的是一个升序排列的序列的头指针和尾…

ubuntu 安装cmake

方法一&#xff1a; sudo apt-get install cmake 跟新中。。。。。。。。。

普通本科生应该坚持ACM吗?知乎

这是本人当初学ACM有疑惑从知乎看见这一篇文章&#xff0c;从中解决了自己的疑惑&#xff0c;虽然是粘贴复制&#xff0c;但是我觉得我们可以从里面找出自己想要的答案&#xff01; 非211一本学校&#xff0c;软件工程专业。学校搞ACM的水平不高&#xff0c;最好的大概就是区域…

邻接表存储图利用BFS遍历

//今天上机写的邻接表存储图利用BFS遍历&#xff1a; #include<stdio.h> #include<stdlib.h> #include<string.h> #include<iostream> using namespace std; struct node//存节点所连接的点 {int id;node *next; }; struct list//存各个节点的顶点值 {…

windows 安装tensorflow2.0

预先装好python 然后在命令行输入&#xff1a; gpu版本&#xff1a; 需要预先装好&#xff1a;cuda 和cudnn 才能使用。 pip install numpy pandas matplotlib sklearn tensorflow-GPU2.0.0-alpha0 -i https://pypi.doubanio.com/simple cpu 版本&#xff1a; alpha0 &…