YCOJ中国邮递员问题
题目:
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中国邮递员问题相关推荐
- 专题·深度优先搜索(DFS)【including 2N皇后,等边三角形,中国邮递员问题
初见安~这篇我们来讲讲深搜(DFS) 前文我们讲过了递归[这里是递推递归],这里我们就要运用到啦~ 所谓深搜,也顾名思义就是在深度上搜索,到了尽头则返回上一层,换一条路继续搜--也就是递归思想. 先看 ...
- matlab中邮递员问题实例,中国邮递员问题matlab
中国邮递员问题的EXCEL求... 1页 免费 对中国邮递员问题的数理... 4页 1下载券 中国邮递员问题matlab 6页 1下载券 喜欢... 中国邮递员问题摘要:欧拉图起源于哥尼斯堡七桥问题, ...
- 【图论】中国邮递员问题、平面图上最大割问题的多项式时间算法
文章目录 一.中国邮递员问题 1. 与欧拉回路的关系 2. Edmonds-Johnson算法 3. 一个例子 二.平面图上的最大割问题 1. 割 2. 最大割及其 N P \bold{NP} NP完 ...
- 关于中国邮递员问题和欧拉图应用
关于中国邮递员问题和欧拉图应用 中国邮递员问题: 1962年有管梅谷先生提出中国邮递员问题(简称CPP).一个邮递员从邮局出发,要走完他所管辖的每一条街道,可重复走一条街道,然后返回邮局.任何选择一条 ...
- 图论--中国邮递员问题
中国邮递员问题就比较悲催了.前后花了我大概有三天的时间..今天才做完的.. 首先描述一下问题: 邮递员从邮局出发送信,要求对辖区内每条街都至少通过一次,再回邮局.在此条件下,怎样选择一条最短路线? 如 ...
- 离散数学实验----中国邮递员问题
实验目的和要求 实验目的: 理解什么是欧拉图,熟悉欧拉路和欧拉回路的概念. 掌握Dijkstra算法,求解最短路径 掌握Fleury算法,求解欧拉回路. 了解Edmonds-Johnson算法解决中国 ...
- UVA10296 Jogging Trails(中国邮递员问题)(欧拉回路、一般图最大权匹配 / 状压DP)
整理的算法模板合集: ACM模板 目录 思路 UVA10296 Jogging Trails 题目翻译: 给你n个点,m条无向边,每条边有一定的距离数值,构造成一个连通图.问从任意一点出发,遍历所有的 ...
- 使用tarjan算法和fleury算法求解中国邮递员问题
一.代码思路 1.首先使用结构体的二维数组储存图. 2. 然后使用另外一个结构体二维数组储存相邻点间有几条边. 3.使用floyd算法求出两点间的最短距离. 4.fleury算法的原则"除非 ...
- 百子作业 —— 中国邮递员问题
题目 严老师和宋老板去勘测武威市区的道路网,每一条路都需要勘测,且需要两人合作.武威市区可以近似地看成六横六纵组成的道路网,自西向东依次为学府路.民勤路.西关路.中关路.富民路.滨河路:自北向南依次为 ...
- YCOJ传娃娃(C++)
传娃娃 Description 学习空闲之余,小信经常带着同学们做游戏,最近小信发明了一个好玩的新游戏:n 位同学围成一个圈,同学 A 手里拿着一个布娃娃.小信喊游戏开始,每位手里拿着娃娃的同学可以选 ...
最新文章
- 科大星云诗社动态20210529
- 分享Silverlight/WPF/Windows Phone/HTML5一周学习导读(11月28日-12月4日)
- Autodesk云计算系列视频 --- 云计算与Civil 3D
- linux 文件浏览器_浏览Linux文件系统
- python核心编程笔记chapter 3
- [CQOI2009] 中位数 (前缀和)
- [book] iOS 8 Swift Programming Cookbook
- docker api java_docker-java Docker的java API
- 华为设备配置ERPS单环多实例
- 如何获取联盟后台的s.click.taobao.com的短链接
- w ndows 10画图,如何在Windows 10中打开和使用画图
- highcharts多坐标轴混合图
- 正确的序号及标点使用格式(参考文)
- 小米手机小技巧:小米手机心率测试
- 一、编程基础之计算机基础知识
- 云从MGN《Learning Discriminative Features with Multiple Granularities for Person Re-Identification》论文阅读
- 哈工大软件过程与工具复习总结
- I。quadratic equation 山东第八届省赛
- Linux网络编程 - 多进程服务器端(1)
- 官宣 | BoCloud博云 x 紫光云引擎达成战略合作
热门文章
- 时间管理表 - 《周计划表》
- 提升 10 倍!阿里云对象存储 OSS 可用性 SLA 技术揭秘
- 《Nature》论文插图复刻第3期—面积图(Part2-100)
- 长期大量收售通信 联通 移动 电信 工程各种型号光缆
- TFN TK200光缆普查仪
- [12-22]XP系统城市更新[www.xp366.com]
- 中国首档「程序员真人秀」综艺登上热搜,燃炸了!
- patch补丁文件制作 使用和常见问题
- android layoutinflater原理分析,Android 之 LayoutInflater 全面解析
- python数学建模基础(一)——矩阵操作