#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int num = 0;
int map[4][4] = {0,3,6,7,
5,0,2,3,
6,4,0,2,
3,7,5,0
};
vector<int> s; void run(int x,int pre,int sum,int pass[5])
{
int i,pass_flag = 1;
//初始化副本
int pass2[5];
for(i = 0;i < 5;i++)
{
pass2[i] = pass[i];
//cout << pass2[i] << endl;
} //当前城市做上标记
pass2[x] = map[pre][x]; //设计出口 pass中的数据都不是-1 说明到过4个城市 for(i = 0;i < 4;i++)
{
if(pass2[i] == -1)
{
pass_flag = 0;
break;
} }
if( pass_flag )
{
//sum + 从最后一座城市返回起始城市
sum += map[x][0];
//将整个路程存放在向量s中
s.push_back(sum); pass2[4] = map[x][0];
//输出路线
cout << "路程方案" << ++num << endl;
for(i = 1;i < 5;i++)
{
cout << pass2[i] << "\t" ;
}
cout << endl;
}
else
{ //加上从上一个城市到达本城市需要的路程
//sum += map[pre][x]; for( i = 0;i < 4;i++ )
{ //判断下一个城市是否已经到达过
if(pass2[i] == -1)
{
//没有达到过 便进行递归循环
run(i,x,sum+map[x][i],pass2);
//pass2[i] = 1;
}
}
}
}
int main()
{ int x = 0;
int y = 0;
int pass[5] = {-1,-1,-1,-1,-1};
//当前所在城市 走过路程 已经走过的城市
run(x,x,0,pass);
sort(s.begin(),s.end());
cout << "最长:" << *(s.end()-1) << endl;
cout << "最短:" << *s.begin() << endl;
return 0;
}

最新文章

  1. vector - vector product
  2. python常用的内置库
  3. mac系统安装php redis扩展
  4. Android复制assets目录下的图片到内存
  5. 洛谷P2015 二叉苹果树
  6. --hdu 1800 Flying to the Mars(贪心)
  7. python自学笔记一
  8. MEF 编程指南(四):声明导入
  9. 【转】Linux內核驅動之GPIO子系統(一)GPIO的使用 _蝸牛
  10. CentOS6.5安装elasticsearch+logstash+kibana
  11. javascript 学习随笔
  12. 把MSSQL的表数据查询成 insert into格式的函数
  13. 一个Android上的以滑动揭示的方式显示并切换图片的View
  14. 架构之CDN缓存
  15. 关于java集合的练习
  16. CSS入门介绍(一)
  17. 利用nginx搭建小型的文件服务器
  18. spring boot log4j2配置
  19. python全栈开发day31-操作系统介绍,异步、同步、阻塞、非阻塞,进程
  20. PathUtil

热门文章

  1. java 的几种引用
  2. 说说你对用SSH框架进行开发的理解
  3. CF922 CodeForces Round #461(Div.2)
  4. 【洛谷2744 】【CJOJ1804】[USACO5.3]量取牛奶Milk Measuring
  5. mysql url 连接配置的一个小坑。 工作中不会遇到。 学习的时候会
  6. 在eclipse中API的封装和调用
  7. react实战第一步--搭建项目
  8. Java集合基本概念及元素添加
  9. mybatis-配置文件mybatis-config.xml
  10. iOS 提交审核报错 ERROR ITMS-90087解决办法