HNUSTOJ-1689 送外卖(TSP问题)
来源:互联网 发布:淘宝游戏光盘 编辑:程序博客网 时间:2024/06/09 20:30
1698: 送外卖
时间限制: 1 Sec 内存限制: 128 MB提交: 115 解决: 24
[提交][状态][讨论版]
题目描述
在美团和饿了么大行其道的今天,囊中羞涩的小周和小美,也随大流加入了配送员的行列。每天下课后,他们都去堕落街帮北京烤鸭店送外卖。
过了好些日子,小周发现每次送外卖,小美总比自己先回来,就算自己拼命跑啊跑,也总是比她慢,明明小美也是和自己一样,走着去送外卖的(等外卖的都饿死了╮(╯﹏╰)╭)。
小周忍不住问了小美这是怎么回事,小美说:“笨蛋,本小姐每次出去都选最短的路,肯定比你走远的路快啊!”
小周恍然大悟,深恨自己怎么没有早早想到这一点,不过亡羊补牢,为时未晚,立即决定效仿小美的做法。小周将店的位置标号为0,其他要送外卖的位置标号分别是1,2,3……然后又将各个标号之间的距离做了一张二维表A,其中A[0][i]代表从店家出发到第i个外卖点的距离,A[i][j](i!=0&&j!=0)表示第i个外卖点到第j个外卖点的距离。
小周每次都从店里出发,送完所有外卖之后,就从最后一个送完外卖的地点径直地回到店里,因为直接回去总是最近的,小周统计出来的表的确也是这样的。保证矩阵对称且主对角线上的元素都是0。
不过由于小周实在是太忙了,连计算最短路线的时间都没有,现在给你这张小周做好的表,请你帮小周确定一下最短的路线吧!
输入
第一行输入数据的组数T(1<=T<=50)。
对于每一组数据,第一行一个n(0 < n <= 9),代表要送的外卖数量,然后一个(n+1)*(n+1)的矩阵A,代表小周的统计出来距离表,0 <= A[i][j] <= 500。
输出
对于每组数据,输出送完所有外卖并回到店里的最短的距离
样例输入
210 5252 020 319 430319 0 96430 96 0
样例输出
104845
提示
来源
周朝苑,孙霄雲,封宇
旅行商问题,即TSP问题(Travelling Salesman Problem)又译为旅行推销员问题、货郎担问题,是数学领域中著名问题之一。假设有一个旅行商人要拜访n个城市,他必须选择所要走的路径,路径的限制是每个城市只能拜访一次,而且最后要回到原来出发的城市。路径的选择目标是要求得的路径路程为所有路径之中的最小值。
这种题我还不知道有什么好的算法,百度了资料也很少,数据量小可以搜索,但是数据量大的话感觉就行不通了。。。如果您有好的算法,欢迎与本人分享, 感激不尽。。。
代码:
#include#include #include using namespace std;const int N = 10 + 5;const int INF = 0x3f3f3f3f;int mat[N][N],n,ans;bool visit[N]; void DFS(int x,int num,int step){ if(num == n){ step+=mat[x][0]; ans = min(ans,step); return; } if(step > ans) return; for(int i=1;i<=n;i++){ if(!visit[i]){ visit[i] = true; DFS(i,num+1,step+mat[x][i]); visit[i] = false; } }} void Input_data(){ for(int i=0;i<=n;i++) for(int j=0;j<=n;j++) scanf("%d",&mat[i][j]); memset(visit,0,sizeof(visit));} int main(){ int T; scanf("%d",&T); while(T--){ scanf("%d",&n); Input_data(); ans = INF; DFS(0,0,0); printf("%d\n",ans); }}
阅读全文
0 0
- HNUSTOJ-1689 送外卖(TSP问题)
- COdevs 题目2800 送外卖(Floyd+状压DP,TSP裸题)
- TSP问题
- TSP问题
- TSP问题
- tsp问题
- TSP问题
- TSP问题
- TSP问题
- TSP问题
- 送外卖
- 送外卖
- 格雷码 hnustoj
- TSP问题,求帮忙。
- POJ 2688 TSP问题
- hdu 4284 TSP问题
- poj3311 经典tsp问题
- hdu 3311 tsp问题
- 数据库的原理,一篇文章搞定
- 开挂人生的启程
- BZOJ3531: [Sdoi2014]旅行
- 机器学习入门第一天,自己对数值预测算法的理解
- DQN从入门到放弃学习总结(2)
- HNUSTOJ-1689 送外卖(TSP问题)
- Linux新建Workerman、composer、redis服务
- 《西瓜书》笔记10:降维与度量学习(三)
- HDU-Gameia
- 列表(list)
- 实现图片通过滚轮的放大缩小
- javaScript内置对象Boolean
- 180度vr直播用,鱼眼视频展开到全景
- SQLite3性能深入分析