栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

状态压缩:毕业旅行问题

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

状态压缩:毕业旅行问题

小明目前在做一份毕业旅行的规划。

打算从北京出发,分别去若干个城市,然后再回到北京,每个城市之间均乘坐高铁,且每个城市只去一次。

由于经费有限,希望能够通过合理的路线安排尽可能的省些路上的花销。

给定一组城市和每对城市之间的火车票的价钱,找到每个城市只访问一次并返回起点的最小车费花销。

注意:北京为 11 号城市。

输入格式

城市个数 nn。

城市间的车票价钱 nn 行 nn 列的矩阵 m[n][n]m[n][n]。

输出格式

输出一个整数,表示最小车费花销。

数据范围

1 车票价格均不超过 10001000 元。

输入样例:

4
0 2 6 5
2 0 4 4
6 4 0 2
5 4 2 0

输出样例:

13

说明

共 44 个城市,城市 11 和城市 11 的车费为 00,城市 11 和城市 22 之间的车费为 22,城市 11 和城市 33 之间的车费为 66,城市 11 和城市 44 之间的车费为 55,以此类推。

假设任意两个城市之间均有单程票可买,且价格均在 10001000 元以内,无需考虑极端情况。

 

#include
using namespace std;

const int N = 20;
int g[N][N];//输入的矩阵
int dp[1<>n;
    for(int i=0;i>g[i][j];
    memset(dp,0x3f,sizeof dp);
    dp[0][0]=0;
    for(int i=0;i<(1<>j)&1)
               for(int k=0;k 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/290235.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号