蒜头君的旅游计划--深搜dfs
马上就要放寒假了,蒜头君已经辛勤的工作一年了,打算和家人一起出去旅游放松放松。有经验的人一定知道,出去旅游前一定要有详细的旅行规划。蒜头君打算旅游 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相关推荐
- 蒜头君的旅游计划(DFS)
马上就要放寒假了,蒜头君已经辛勤的工作一年了,打算和家人一起出去旅游放松放松.有经验的人一定知道,出去旅游前一定要有详细的旅行规划.蒜头君打算旅游 n 个城市,但并不是每条路线的花费都是一样的.蒜头君 ...
- 【计蒜客】蒜头君的旅游计划
题目 思路 递归出口:如果你到达的点已经到达了所有城市. 最优性剪枝:如果你当前到达点的花费已经超过了当前的最优解,就直接退出. 代码 #include<bits/stdc++.h> us ...
- [二叉树|深搜|dfs] leetcode 404 左叶子之和
[二叉树|深搜|dfs] leetcode 404 左叶子之和 1.题目 题目链接 计算给定二叉树的所有左叶子之和. 示例: 3/ \9 20/ \15 7在这个二叉树中,有两个左叶子,分别是 9 和 ...
- 题解HDU6148 Valley Numer(数位DP+深搜DFS)
题解HDU6148 Valley Numer[数位DP+深搜DFS] 题目 解析 参考源码 题目 Description: 众所周知,度度熊非常喜欢数字. 它最近发明了一种新的数字:Valley Nu ...
- 深入递归、深搜dfs、回溯、剪纸学习。
深入递归,深搜dfs,回溯,剪枝 参考于博客 一.双管齐下解递归 "逐步生成结果"类问题之数值型 自下而上的递归(递推,数学归纳,动态规划) 解决简单情况下的问题. 推广到稍复杂情 ...
- 2412 - 和为K ---深搜dfs剪枝
**2412 - 和为K ---深搜dfs优化 **来源:东方博宜oj oj.czos.cn #include<bits/stdc++.h> using namespace std; co ...
- acwing-167. 木棒(深搜dfs+减枝)
乔治拿来一组等长的木棒,将它们随机地砍断,使得每一节木棍的长度都不超过 50 个长度单位. 然后他又想把这些木棍恢复到为裁截前的状态,但忘记了初始时有多少木棒以及木棒的初始长度. 请你设计一个程序,帮 ...
- 深搜DFS\广搜BFS 图初步入门
首先,不管是BFS还是DFS,由于时间和空间的局限性,它们只能解决数据量比较小的问题. 深搜,顾名思义,它从某个状态开始,不断的转移状态,直到无法转移,然后退回到上一步的状态,继续转移到其他状态,不断 ...
- 深搜(DFS),Image Perimeters
题目链接:http://poj.org/problem?id=1111 解题报告: 1.这里深搜有一点要注意,对角线上的点,如果为'.',则total不应该增加,因为这不是他的边长. #include ...
最新文章
- python有道翻译接口-Python通过调用有道翻译api实现翻译功能示例
- P1003 铺地毯(模拟)
- Puzzle 18 - StringCheese - byte storage
- Media所有参数汇总
- public,protected,private
- pb将datawindow数据导出EXCEL
- 树、森林、二叉树的转换
- 【收藏】这些Python代码技巧,你肯定还不知道
- 在Ubuntu 20.04(Linux Mint 各衍生版)上安装使用国金证券 通达信 客户端软件。
- 图像处理农业应用sci_SCI/SSCI期刊征稿信息3月8日更新
- 字节学妹的数据分析笔记,收藏
- MAX30102心率血样模块在STM32F103芯片的程序说明
- iOS 屏幕旋转的实践解析
- thinkphp 打开速度缓慢,大多由于数据库读取问题!解决方法
- HTML图片的路径问题
- 吴恩达机器学习视频学习笔记
- 启动不了argis的license manager
- 遥感—以常用夜光遥感卫星介绍为主
- php 图片 模糊,Word中插入图片模糊、不清晰的解决方法
- Android自动化打包部署及配置文档