判断从v出发是否能走到终点

  1. bool dfs(v){
  2. if(v is 终点)return true;
  3. if(v is 旧点)return false;
  4. v标记为旧点;
  5. 对和v相邻的每个节点u{
  6. if(dfs(u)==true)return true;
  7. }
  8. return false;
  9. }
  10. int main() {
  11. 所有点都标记为新点;
  12. 起点=~;
  13. 终点=~;
  14. cout<<dfs(起点)<<endl;
  15. return 0;
  16. }

寻找路径

  1. //寻找一条路径
  2. Node path [MAX_LEN];//MAX_LEN取节点总数
  3. int depth;
  4. bool dfs(v){
  5. if(v为终点){
  6. path[depth] = v;
  7. return true;
  8. }
  9. if(v为旧点)return false;
  10. v标记为旧点;
  11. path[depth]=v;
  12. ++depth ;
  13. 对和v相邻的每个节点u{
  14. if(dfs(u))return true;
  15. }
  16. --depth;
  17. return false;
  18. }
  19. //寻找多条路径
  20. void dfs_1(v){
  21. if(v为终点){
  22. path[depth] = v;
  23. for(int i = 0;i <= depth;i++)
  24. cout<<path[i]<<endl;
  25. return ;
  26. }
  27. if(v为旧点)return;
  28. 对和v相邻的每个节点u{
  29. v标记为旧点;
  30. path[depth]=v;
  31. ++depth ;
  32. dfs(v);
  33. --depth;
  34. }
  35. return;
  36. }
  37. int main(){
  38. 将所有点都标记为新点;
  39. depth = 0;
  40. if(dfs(起点)) {
  41. for(int i = 0;i <= depth;i++)
  42. cout<<path[i]<<endl;
  43. }
  44. }

遍历图上所有的点

  1. dfs(v)(
  2. if(v是旧点)return;
  3. v标记为旧点;
  4. 对和v相邻的每个点u{
  5. dfs(u);
  6. }
  7. )
  8. int main(){
  9. 将所有点都标记为新店;
  10. while(在图中能找到新点k) dfs(k);
  11. }

几种常见的dfs模板的更多相关文章

  1. C# 实现AOP 的几种常见方式

    AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的中统一处理业务逻辑的一种技术,比较常见的场景是:日志记录,错误捕获 ...

  2. Vue2 几种常见开局方式

    在SF问题中看到了一个关于vue-cli中的template问题,问题是这样的:用vue-cli工具生成的main.js中: import Vue from 'vue' import App from ...

  3. 五种常见的ASP.NET安全缺陷

    保证应用程序的安全应当从编写第一行代码的时候开始做起,原因很简单,随着应用规模的发展,修补安全漏洞所需的代价也随之快速增长.根据IBM的系统科学协会(SystemsSciencesInstitute) ...

  4. 2.Hive的几种常见的数据导入方式

    好久没写Hive的那些事了,今天开始写点吧.今天的话题是总结Hive的几种常见的数据导入方式,我总结为四种:(1).从本地文件系统中导入数据到Hive表:(2).从HDFS上导入数据到Hive表:(3 ...

  5. Fibonacci series(斐波纳契数列)的几种常见实现方式

    费波那契数列的定义: 费波那契数列(意大利语:Successione di Fibonacci),又译费波拿契数.斐波那契数列.斐波那契数列.黄金切割数列. 在数学上,费波那契数列是以递归的方法来定义 ...

  6. Vue 几种常见开局方式

    vue的开局方式五花八门,这里列几种常见的. 我们先建立一个app.vue来当入口文件,即所有页面都会以这个组件为模板. <template> <div id="app&q ...

  7. 适用于app.config与web.config的ConfigUtil读写工具类 基于MongoDb官方C#驱动封装MongoDbCsharpHelper类(CRUD类) 基于ASP.NET WEB API实现分布式数据访问中间层(提供对数据库的CRUD) C# 实现AOP 的几种常见方式

    适用于app.config与web.config的ConfigUtil读写工具类   之前文章:<两种读写配置文件的方案(app.config与web.config通用)>,现在重新整理一 ...

  8. Java中9种常见的CMS GC问题分析与解决

    1. 写在前面 | 本文主要针对 Hotspot VM 中"CMS + ParNew"组合的一些使用场景进行总结.重点通过部分源码对根因进行分析以及对排查方法进行总结,排查过程会省 ...

  9. DFS模板

    DFS模板 题型分类:我们可以将DFS题分为两大类: 1 . 地图型:这种题型将地图输入,要求完成一定的任务.因为地图的存在.使得题意清楚形象化,容易理清搜索思路.AOJ 869-迷宫(遍历地图,四向 ...

随机推荐

  1. quartzJob

    定时任务的时间修改.暂停.立即执行 定时任务的修改.暂停主要是调用quartz内置方法pauseJob().resumeJob().triggerJob()等方法 //暂停一个job JobKey j ...

  2. 浅谈产品模型(Profile)在程序设计中的作用

    引言:物联网平台的一个重要功能就是资产管理,产品或者设备都可以看成是资产中组成部分,所以有时候说物联网平台可以进行产品管理和设备管理.通常应用物联网平台开发一套具有产品或者设备管理功能的系统的时候,必 ...

  3. 解决 es CircuitBreakingException 问题

    比如频繁报如下错误, [2019-06-16T15:31:22,778][DEBUG][o.e.a.a.c.n.i.TransportNodesInfoAction] [node-xxx] faile ...

  4. noi7219 复杂的整数划分问题

    noi7219 复杂的整数划分问题 #include <bits/stdc++.h> using namespace std; ; int dp1[maxn][maxn], dp2[max ...

  5. RBAC权限分配

    RABC:基于角色的权限访问控制(Role-Based Access Control) 一般在登录系统认证通过后,会先确定的该用户的操作权限,判断用户的后续操作是否合法! RABC至少需要三张表:用户 ...

  6. LightOJ1282

    题目大意: 给出 n 和 k,请你求出 n^k 次方的前三位和后三位. 解题思路: 后三位用快速幂,不加赘述. 求前三位的方法: AC代码: #include <iostream> #in ...

  7. CICD:Jenkins入门和使用

    最近,我们使用的开发服务器被回收了,换了一台新的服务器,CI/CD平台需要重新搭建. 我的运维能力一直薄弱,所以借此机会学习了一番如何使用Jenkins进行持续集成开发和部署,实践并踩了一些坑,在此记 ...

  8. Java 8 中如何优雅的处理集合

    Java 8 中如何优雅的处理集合(Stream API) 在Java中,集合和数组是我们经常会用到的数据结构,需要经常对他们做增.删.改.查.聚合.统计.过滤等操作.相比之下,关系型数据库中也同样有 ...

  9. 重学 Java 设计模式:实战抽象工厂模式

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获!

  10. Centos7无界面化启动

    Centos7无界面启动: 为了减少系统开销,有时候我们需要无图形界面启动linux(centos7) systemctl set-default multi-user.target (关闭图形界面) ...