前言:没有前言.
T1 Hie with the Pie
题意:
给你几个点,每个点都有到其他点的价值,请问遍历所有点的最小价值.
解析:
最短路+状压.
代码:
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int lu[20][20], dp1[20][20], dp2[1 << 11][20];
int main()
{
int n, i, j, k;
while (~scanf("%d", &n), n)
{
for (int i = 0; i <= n; i++)
for (int j = 0; j <= n; j++)
{
scanf("%d", &lu[i][j]);
dp1[i][j] = lu[i][j];
}
for (int j = 0; j <= n; j++)
for (int i = 0; i <= n; i++)
for (int k = 0; k <= n; k++)
dp1[i][j] = min(dp1[i][k] + lu[k][j], dp1[i][j]);
memset(dp2, -1, sizeof(dp2));
dp2[1][