题目链接:

http://acm.hdu.edu.cn/showproblem.php?pid=1572

题目描述:

话说当上小面的司机的Lele在施行他的那一套拉客法则以后,由于走的路线太长,油费又贵,不久便亏本了。(真可怜~)于是他又想了一个拉客的办法。
对于每一次拉客活动,他一次性把乘客都拉上车(当然也不会超过7个,因为位置只有7个)。然后,Lele计算出一条路线(出于某些目的,Lele只把车上乘客的目的地作为这条路线上的站点),把所有乘客都送到目的地(在这路线上不拉上其他乘客),并且使总路线长度最短。
不过Lele每次都要花很多时间来想路线,你能写个程序帮他嘛?
Input
本题目包含多组测试。最后一组测试后有一个0代表结束。
每组测试第一行有一个整数NCity(3<=NCity<=30)表示下沙一共有多少个站点(站点从0开始标号)。
然后给你一个 NCity * NCity 的矩阵,表示站点间的两两距离。即这个矩阵中第 i 行 第 j 列的元素表示站点 i 和站点 j 的距离。(0<=距离<=1000)
再然后有一个整数K(1<=K<=7),表示Lele拉上车的人数。
接下来的一行里包括 K 个整数,代表上车的人分别要去的站点。(0<站点<NCity)
注意:
对于每组测试,Lele都是在站点0拉上乘客的。
Output
对于每一组测试,在一行内输出一个整数,表示最短路线的长度。

解题思路:搜索题很多,不过不考虑剪枝的就很少了

像这种良心题数据范围很小的,不暴搜都对不起作者~

搜出给定数组的全排列,计算出每个排列的距离值之和,不断更新求最小值即可完美解决该题。

#include<stdio.h>
#include<string.h>
int n,m,last_ans,C_last_num;
int V_map[35][35],Z_list_flag[35];
void dfs(int now_point,int C_now_step,int now_sum)
{if(C_now_step==C_last_num)if(last_ans>now_sum)last_ans=now_sum;for(int i=1;i<n;i++)if(Z_list_flag[i]){Z_list_flag[i]=0;dfs(i,C_now_step+1,now_sum+V_map[now_point][i]);Z_list_flag[i]=1;}
}
int main()
{int i,j;while(scanf("%d",&n),n){memset(Z_list_flag,0,sizeof(Z_list_flag)); for(i=0;i<n;i++)for(j=0;j<n;j++)scanf("%d",&V_map[i][j]);scanf("%d",&m);C_last_num=0;for(i=1;i<=m;i++){scanf("%d",&j);if(!Z_list_flag[j]){C_last_num++;Z_list_flag[j]=1;}}last_ans=999999;dfs(0,0,0);printf("%d\n",last_ans);}return 0;
}

搜索——下沙小面的2(hdu1572)相关推荐

  1. HDU1572 下沙小面的(2)【全排列】

    下沙小面的(2) Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Subm ...

  2. vue uniapp 微信小程序 搜索下拉框 模糊搜索

    vue uniapp 微信小程序 搜索下拉框 模糊搜索 话不多说 直接贴代码 template <template><view class="index"> ...

  3. 微信小程序搜索下拉框排名原理及使用方法「干货」

    自从2017年1月份微信推出小程序以来,小程序的火热程度大家是有目共睹的,从一开始的精确搜索,到后面的模糊搜索,小程序的更新速度远远超过了外界的期待!虽然小程序目前已经有五十几个入口,但是关键词搜索这 ...

  4. activity 防止多次打开_杭州下沙罐式无负压供水设备防止水质污染变频电泵

    杭州下沙罐式无负压供水设备防止水质污染变频电泵 杭州下沙罐式无负压供水设备防止水质污染变频电泵预知概略,欢迎致电详询,控制更活络.其次我们还应考察厂家的实力,当然有工厂的生产厂家在技术方面都是很成熟的 ...

  5. HDOJ---1267 下沙的沙子2[DP或卡特兰数]

    下沙的沙子有几粒? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total ...

  6. 前端常用事件案例——抽名字(抽奖)/搜索下拉菜单/微博文本框

    目录 抽名字(抽奖) 搜索下拉菜单 微博文本框 进阶微博案例 抽名字(抽奖) 实现效果是:点击开始按钮,则方框不断显示名字,点击停止,抽到的人名就是谁,并且删除,继续直到抽完后禁用按钮 ①点击开始按钮 ...

  7. 加一度解析百度搜索困局,小程序将开启搜索流量新机遇

    近期,不知大家在使用百度APP时,有没有发现其搜索结果内智能小程序的出现增多了? 这实际上是百度针对智能小程序开发者在搜索流量上开放的一个重要动作,这也意味着在百度的搜索场景中,智能小程序可以获得更多 ...

  8. 提高微信小程序的应用速度的常见方式有哪些? 小程序怎么实现下拉刷新? 简述微信小程序原理? 小程序的发布流程(开发流程)分析下微信小程序的优劣势?小程序授权登录流程? 小程序支付如何实现

    小程序部分常见面试题 提高微信小程序的应用速度的常见方式有哪些? 提高页面加载速度 用户行为预测 减少默认data的大小 组件化方案 分包预下载 小程序与原生App相比优缺点? 优点: 基于微信平台开 ...

  9. 下拉 html 实现原理,百度搜索下拉框实现技术原理分析

    问:百度搜索下拉框关键词是怎么来的,下拉框实现技术原理分析一下. 来自百度站长平台的站长回答: 对于词的研究,想必每个seoer都知道,而除了比较热门的百度相关搜索词之外,百度下拉框关键词应该也是不少 ...

最新文章

  1. SAP MM初阶之事务代码MIGO界面里的HOLD
  2. Codeforces 607B Zuma
  3. Windows系统下nodejs安装及配置
  4. Python入门之三元表达式\列表推导式\生成器表达式\递归匿名函数\内置函数
  5. linux 复制硬盘 启动报错,linux挂载硬盘报错(you must specify the filesystem type)
  6. mysql server再次安装失败_MySQL在windows上多次安装失败
  7. 关于微信安卓版计步作弊器
  8. Python 一个无限 重复生成器的实现 和一个简洁的 quicksort
  9. 发那科机器人接线电源_电源开关上的L1和L2是不是火线和零线?
  10. java nio 多路复用_JAVA NIO 一步步构建I/O多路复用的请求模型
  11. 三思笔记,涂抹ORACLE~~
  12. 电脑各配件故障速排方法
  13. 两消两现指的是_精细胞减二末期会有“两现”吗
  14. 省市区前端json格式 上
  15. 欧洲急了,正式发起 2nm 芯片总攻
  16. 尚未解决的10个最困难的数学问题
  17. HDOJ 4239 - Decoding EDSAC Data 模拟
  18. 如何让网页自适应所有屏幕宽度
  19. 五款音乐小程序,安抚你度过颓废的时光
  20. mac 好用的ps修图软件 Pixelmator Pro

热门文章

  1. 无法启动程序因为计算机中丢失礼包,Win10开机提示“计算机中丢失mfc110u.dll”的解决方法...
  2. v html是双向绑定吗,vue自定v-model实现表单数据双向绑定问题
  3. python 批量增加文件前缀_用python批量提取视频中的音频文件
  4. java onchange_jsp中select的onchange事件用法实例
  5. 添加notepad到右键菜单栏
  6. visdom可视化工具
  7. tf.keras CNN网络搭建笔记
  8. VOC和COCO数据集标注格式的介绍
  9. python 字典操作 内存占用_关于 python 的 dict 的内存占用问题....
  10. android word设计模式,word07设计模式