现在政府计划在某个区城的城市之间建⽴⾼速公路,以使得其中任意两个城市之间都有直接或间接的⾼速公路相连。费⽤为每千⽶为⼀个单位价格,求最⼩费⽤。 输⼊: $n$ ($n \leq 100$,表示城市数⽬)。 接下来 $n$ ⾏,每⾏两个数 $x_i, y_i$,表示第个城市的坐标,(单位:千⽶)。)
输出: 最⼩费⽤(保留 $2$ 位⼩数)。 程序如下:
#include<iostream> #include<cstdio> using namespace std; const int maxn = 101; struct tcity { float x, y; }; tcity c[maxn]; float d[maxn][maxn], a, minf; int p[maxn], n, i, j, k; int main() { cin >> n; for (i = 1; i <= n; i++) cin >> c[i].x >> c[i].y; for (i = 1; i <= n; i++) for (j = i; j <= n; j++) d[i][j] = ___(1)___; p[1] = 0; for (i = 2; i <= n; i++) ___(2)___; for (i = 1; i <= n - 1; i++) { minf = 1E10; for (j = 1; j <= n; j++) { if (___(3)___) { minf = d[p[j]][j]; (___(4)___) } } a = a + d[p[k]][k]; p[k] = 0; for (j = 1; j <= n; j++) if (___(5)___) p[j] = k; } printf("%0.2f", a); return 0; }
1. (1) 处应填( )
2. (2) 处应填( )
3. (3) 处应填( )
4. (4) 处应填( )
5. (5) 处应填( )
陈伦制作 版权所无 粤ICP备16127491号-1