题目:

Description一个邮递员从邮局出发,需要去 n - 2个城市送信,送完信件以后回家。邮局在城市 1,家在城市 n,任意两个城市之间都有道路,但是这些道路是单向,也就是说 a 到 b 和 b 到 a 的路径长度不一定是一样的。他必须经过每个城市一次,并且不能重复经过,最后回到家里。现在要求你计算他需要经过的路径总和的最小长度。Input第一行有一个整数 n(2≤ n ≤ 10)。接下里输入一个 n × n 的邻接矩阵 G, G[i][j] 表示从 i 走到 j 的路径长度。Output输出一个整数表示最小经过的路径总长度。Sample Input 1 4
0 1 1 1
1 0 2 1
5 5 0 6
1 1 3 0
Sample Output 17
Source计蒜客

当我第一眼看到这道题时,顿时傻眼了这是什么题啊?

 a 到 b 和 b 到 a 的路径长度不一定是一样的。

这是几个意思?算了,我们可是OIer,不要用正常人的眼光来看这些题。

也就是说,这道题的图是一个有向图,所以又要请出我们的动态数组vector了。

这道题的大致思路就是DFS求出所有方案数,求出一个和目前已知最优方案比一下。

具体代码:

#include <bits/stdc++.h>
using namespace std;
int n;
bool vis[1010];
struct node{int v;int w;node(){};node(int _v,int _w){v=_v;w=_w;} //构造函数
};//
int ans=0x3f3f3f3f;
vector <node>g[15];
void dfs(int u,int k,int sum){if(u==n&&k==n){ans=min(ans,sum);return;}//走完了,和目前已知最小值比一下vis[u]=1;for (int i=0;i<g[u].size();i++){if(!vis[g[u][i].v]){dfs(g[u][i].v,k+1,sum+g[u][i].w);//代码核心}   }vis[u]=0;
}
int main(){cin >>n;for (int i=1;i<=n;i++){for (int j=1;j<=n;j++){int w;cin>>w;g[i].push_back(node(j,w));//放进动态数组}}dfs(1,1,0);//调用函数cout << ans;return 0;
}

YCOJ中国邮递员问题相关推荐

  1. 专题·深度优先搜索(DFS)【including 2N皇后,等边三角形,中国邮递员问题

    初见安~这篇我们来讲讲深搜(DFS) 前文我们讲过了递归[这里是递推递归],这里我们就要运用到啦~ 所谓深搜,也顾名思义就是在深度上搜索,到了尽头则返回上一层,换一条路继续搜--也就是递归思想. 先看 ...

  2. matlab中邮递员问题实例,中国邮递员问题matlab

    中国邮递员问题的EXCEL求... 1页 免费 对中国邮递员问题的数理... 4页 1下载券 中国邮递员问题matlab 6页 1下载券 喜欢... 中国邮递员问题摘要:欧拉图起源于哥尼斯堡七桥问题, ...

  3. 【图论】中国邮递员问题、平面图上最大割问题的多项式时间算法

    文章目录 一.中国邮递员问题 1. 与欧拉回路的关系 2. Edmonds-Johnson算法 3. 一个例子 二.平面图上的最大割问题 1. 割 2. 最大割及其 N P \bold{NP} NP完 ...

  4. 关于中国邮递员问题和欧拉图应用

    关于中国邮递员问题和欧拉图应用 中国邮递员问题: 1962年有管梅谷先生提出中国邮递员问题(简称CPP).一个邮递员从邮局出发,要走完他所管辖的每一条街道,可重复走一条街道,然后返回邮局.任何选择一条 ...

  5. 图论--中国邮递员问题

    中国邮递员问题就比较悲催了.前后花了我大概有三天的时间..今天才做完的.. 首先描述一下问题: 邮递员从邮局出发送信,要求对辖区内每条街都至少通过一次,再回邮局.在此条件下,怎样选择一条最短路线? 如 ...

  6. 离散数学实验----中国邮递员问题

    实验目的和要求 实验目的: 理解什么是欧拉图,熟悉欧拉路和欧拉回路的概念. 掌握Dijkstra算法,求解最短路径 掌握Fleury算法,求解欧拉回路. 了解Edmonds-Johnson算法解决中国 ...

  7. UVA10296 Jogging Trails(中国邮递员问题)(欧拉回路、一般图最大权匹配 / 状压DP)

    整理的算法模板合集: ACM模板 目录 思路 UVA10296 Jogging Trails 题目翻译: 给你n个点,m条无向边,每条边有一定的距离数值,构造成一个连通图.问从任意一点出发,遍历所有的 ...

  8. 使用tarjan算法和fleury算法求解中国邮递员问题

    一.代码思路 1.首先使用结构体的二维数组储存图. 2. 然后使用另外一个结构体二维数组储存相邻点间有几条边. 3.使用floyd算法求出两点间的最短距离. 4.fleury算法的原则"除非 ...

  9. 百子作业 —— 中国邮递员问题

    题目 严老师和宋老板去勘测武威市区的道路网,每一条路都需要勘测,且需要两人合作.武威市区可以近似地看成六横六纵组成的道路网,自西向东依次为学府路.民勤路.西关路.中关路.富民路.滨河路:自北向南依次为 ...

  10. YCOJ传娃娃(C++)

    传娃娃 Description 学习空闲之余,小信经常带着同学们做游戏,最近小信发明了一个好玩的新游戏:n 位同学围成一个圈,同学 A 手里拿着一个布娃娃.小信喊游戏开始,每位手里拿着娃娃的同学可以选 ...

最新文章

  1. 科大星云诗社动态20210529
  2. 分享Silverlight/WPF/Windows Phone/HTML5一周学习导读(11月28日-12月4日)
  3. Autodesk云计算系列视频 --- 云计算与Civil 3D
  4. linux 文件浏览器_浏览Linux文件系统
  5. python核心编程笔记chapter 3
  6. [CQOI2009] 中位数 (前缀和)
  7. [book] iOS 8 Swift Programming Cookbook
  8. docker api java_docker-java Docker的java API
  9. 华为设备配置ERPS单环多实例
  10. 如何获取联盟后台的s.click.taobao.com的短链接
  11. w ndows 10画图,如何在Windows 10中打开和使用画图
  12. highcharts多坐标轴混合图
  13. 正确的序号及标点使用格式(参考文)
  14. 小米手机小技巧:小米手机心率测试
  15. 一、编程基础之计算机基础知识
  16. 云从MGN《Learning Discriminative Features with Multiple Granularities for Person Re-Identification》论文阅读
  17. 哈工大软件过程与工具复习总结
  18. I。quadratic equation 山东第八届省赛
  19. Linux网络编程 - 多进程服务器端(1)
  20. 官宣 | BoCloud博云 x 紫光云引擎达成战略合作

热门文章

  1. 时间管理表 - 《周计划表》
  2. 提升 10 倍!阿里云对象存储 OSS 可用性 SLA 技术揭秘
  3. 《Nature》论文插图复刻第3期—面积图(Part2-100)
  4. 长期大量收售通信 联通 移动 电信 工程各种型号光缆
  5. TFN TK200光缆普查仪
  6. [12-22]XP系统城市更新[www.xp366.com]
  7. 中国首档「程序员真人秀」综艺登上热搜,燃炸了!
  8. patch补丁文件制作 使用和常见问题
  9. android layoutinflater原理分析,Android 之 LayoutInflater 全面解析
  10. python数学建模基础(一)——矩阵操作