[Cpp]
Description: a collection of questions. This question exists in Liu lujia's book. However, his code is a bit vulnerable and must be changed.
# Include <cstdio>
# Include <cstring>
# Include <cmath>
Int n, t = 0;
Char str [1010];
Double v [25] [2], d [(1 <20)];
Double min (double x, double y)
{
Return x> y? Y: x;
}
Double solve (int x, int y)
{
Double a = v [x] [0]-v [y] [0], B = v [x] [1]-v [y] [1];
Return sqrt (a * a + B * B );
}
Int main ()
{
// Freopen ("a.txt", "r", stdin );
While (scanf ("% d", & n )! = EOF)
{
If (! N) break;
N = n * 2;
For (int I = 0; I <n; I ++) scanf ("% s % lf", str, & v [I] [0], & v [I] [1]);
D [0] = 0;
For (int s = 1; s <(1 <n); ++ s)
{
D [s] = 0x7fffffff;
Int I, j;
For (I = 0; I <n; ++ I) if (s & (1 <I) break;
For (j = I + 1; j <n; ++ j)
If (s & (1 <j) d [s] = min (d [s], solve (I, j) + d [s ^ (1 <I) ^ (1 <j)]);
}
Printf ("Case % d: %. 2lf \ n", ++ t, d [(1 <n)-1]);
}
Return 0;
}*