马上就要放寒假了,蒜头君已经辛勤的工作一年了,打算和家人一起出去旅游放松放松。有经验的人一定知道,出去旅游前一定要有详细的旅行规划。蒜头君打算旅游 n 个城市,但并不是每条路线的花费都是一样的。蒜头君是一个勤俭节俭的人,他就在想怎么把所有的城市旅游一遍花费最小呢?(蒜头君不喜欢重复旅游同一个城市,也就是说已到达过的城市蒜头君是不会再次光临的)
输入格式
第一行输入一个整数 n (1≤n≤15),表示有 n 个城市。

接下来有一个 n×n 的矩形,表示每两个城市之间的火车花费,每两个城市之间的花费不会超过 10000。

输出格式
输出一个整数,表示从 1 号城市把所有景点旅游一遍并且回到 1 号城市的最小花费。

样例输入

4
0 1 1 1
1 0 2 1
5 5 0 6
1 1 3 0

样例输出

8

//蒜头君的旅游计划
#include<iostream>
using namespace std;
int n;
int u, sum, cnt;
int  ans = 100000;
int  graph[20][20];
bool vis[20];
//求旅游n个城市的最小花费
void dfs(int u, int cnt, int sum) {if (cnt == n && (sum + graph[u][1]<=ans)) {ans = sum + graph[u][1];cout << u << 1 << endl;cout  << endl;return;}vis[u] = true;for (int i = 1; i <= n; i++) {if (vis[i]==false) {cout << u << i << endl;dfs(i, cnt+1, sum + graph[u][i]);}}vis[u] = false;}
int main() {cin >> n;for (int i = 1; i <= n; i++) {vis[i] = false;for (int j = 1; j <= n; j++) {cin >> graph[i][j];}}dfs(1, 1, 0);cout << "ans:" << ans << endl;return 0;}

当dfs函数中if语句只有  cnt==n时  输出 全部解例如  10,8,10,9

void dfs(int u, int cnt, int sum) {if (cnt == n ) {ans = sum + graph[u][1];cout << u << 1 << endl;cout << ans << endl;cout  << endl;return;}

蒜头君的旅游计划--深搜dfs相关推荐

  1. 蒜头君的旅游计划(DFS)

    马上就要放寒假了,蒜头君已经辛勤的工作一年了,打算和家人一起出去旅游放松放松.有经验的人一定知道,出去旅游前一定要有详细的旅行规划.蒜头君打算旅游 n 个城市,但并不是每条路线的花费都是一样的.蒜头君 ...

  2. 【计蒜客】蒜头君的旅游计划

    题目 思路 递归出口:如果你到达的点已经到达了所有城市. 最优性剪枝:如果你当前到达点的花费已经超过了当前的最优解,就直接退出. 代码 #include<bits/stdc++.h> us ...

  3. [二叉树|深搜|dfs] leetcode 404 左叶子之和

    [二叉树|深搜|dfs] leetcode 404 左叶子之和 1.题目 题目链接 计算给定二叉树的所有左叶子之和. 示例: 3/ \9 20/ \15 7在这个二叉树中,有两个左叶子,分别是 9 和 ...

  4. 题解HDU6148 Valley Numer(数位DP+深搜DFS)

    题解HDU6148 Valley Numer[数位DP+深搜DFS] 题目 解析 参考源码 题目 Description: 众所周知,度度熊非常喜欢数字. 它最近发明了一种新的数字:Valley Nu ...

  5. 深入递归、深搜dfs、回溯、剪纸学习。

    深入递归,深搜dfs,回溯,剪枝 参考于博客 一.双管齐下解递归 "逐步生成结果"类问题之数值型 自下而上的递归(递推,数学归纳,动态规划) 解决简单情况下的问题. 推广到稍复杂情 ...

  6. 2412 - 和为K ---深搜dfs剪枝

    **2412 - 和为K ---深搜dfs优化 **来源:东方博宜oj oj.czos.cn #include<bits/stdc++.h> using namespace std; co ...

  7. acwing-167. 木棒(深搜dfs+减枝)

    乔治拿来一组等长的木棒,将它们随机地砍断,使得每一节木棍的长度都不超过 50 个长度单位. 然后他又想把这些木棍恢复到为裁截前的状态,但忘记了初始时有多少木棒以及木棒的初始长度. 请你设计一个程序,帮 ...

  8. 深搜DFS\广搜BFS 图初步入门

    首先,不管是BFS还是DFS,由于时间和空间的局限性,它们只能解决数据量比较小的问题. 深搜,顾名思义,它从某个状态开始,不断的转移状态,直到无法转移,然后退回到上一步的状态,继续转移到其他状态,不断 ...

  9. 深搜(DFS),Image Perimeters

    题目链接:http://poj.org/problem?id=1111 解题报告: 1.这里深搜有一点要注意,对角线上的点,如果为'.',则total不应该增加,因为这不是他的边长. #include ...

最新文章

  1. python有道翻译接口-Python通过调用有道翻译api实现翻译功能示例
  2. P1003 铺地毯(模拟)
  3. Puzzle 18 - StringCheese - byte storage
  4. Media所有参数汇总
  5. public,protected,private
  6. pb将datawindow数据导出EXCEL
  7. 树、森林、二叉树的转换
  8. 【收藏】这些Python代码技巧,你肯定还不知道
  9. 在Ubuntu 20.04(Linux Mint 各衍生版)上安装使用国金证券 通达信 客户端软件。
  10. 图像处理农业应用sci_SCI/SSCI期刊征稿信息3月8日更新
  11. 字节学妹的数据分析笔记,收藏
  12. MAX30102心率血样模块在STM32F103芯片的程序说明
  13. iOS 屏幕旋转的实践解析
  14. thinkphp 打开速度缓慢,大多由于数据库读取问题!解决方法
  15. HTML图片的路径问题
  16. 吴恩达机器学习视频学习笔记
  17. 启动不了argis的license manager
  18. 遥感—以常用夜光遥感卫星介绍为主
  19. php 图片 模糊,Word中插入图片模糊、不清晰的解决方法
  20. Android自动化打包部署及配置文档

热门文章

  1. Sumologic的Log Search语法及日志监控事件通知的设置
  2. 中国移动力撑国产5G手机,恐怕也难助它们击败苹果
  3. tensorflow-斑马线识别
  4. 重磅:2024QS世界大学排名发布!
  5. HTTP协议-简单学习
  6. LeanBack:HorizontalGridView和VerticalGridView使用详解
  7. Eclipse设置成黑色背景(黑色主题)
  8. 图片理解数字签名和验签过程
  9. stylus插件改变html,Stylus插件开发教程
  10. java实现简单的图书管理系统(以及代码中用了特殊注释TODO,XXX,FIXME),compare接口