swust-oj 411售货员的难题

题目描述

某乡有n个村庄(1< n < 20),有一个售货员,他要到各个村庄去售货,各村庄之间的路程s(0 < s < 1000)是已知的,且A村到B村与B村到A村的路大多不同。为了提高效率,他从商店出发到每个村庄一次,然后返回商店所在的村,假设商店所在的村庄为 1,他不知道选择什么样的路线才能使所走的路程最短。请你帮他选择一条最短的路。

输入

村庄数n和各村之间的路程(均是整数)。

输出

最短的路程

样例输入

3	{村庄数}
0 2 1	{村庄1到各村的路程}
1 0 2	{村庄2到各村的路程}
2 1 0	{村庄3到各村的路程}

样例输出

3
#include
#include 
#include
#include
using namespace std;

int n;
int map[21][21];
int dp[21][1 << 21];

int main() 
{
	cin >> n;
	for (int i = 0; i < n; i++) 
	{
		for (int j = 0; j < n; j++) 
		{
			cin >> map[i][j];
		}
	}
	
	for (int i = 0; i 

你可能感兴趣的:(swust-oj 411售货员的难题)