多题目

现在政府计划在某个区域的城市之间建立高速公路,以使得其中任意两个城市之间都有直接或间接的高速公路相连。费用为每千米为一个单位价格,求最小费用。输人:n(n<=100,表示城市数目)。

接下来n行,每行两个数xi,yi,表示第i个城市的坐标。(单位:千米)输出:最小费用(保留2位小数)。

#include<iostream>

#include<cstdio>

using namespace std;

const int maxn-101;

struct tcity

float x,y;

};

tcity c[maxn];

d[ maxn][maxn],a,minf;floatint p[maxn],n,i,j,k;

int main()

cin>>n;

for(i-l;i<=n;i++)

cin>>c[i].x>>c[i].y;

for(i=l;i<=n;i++)

for(j=1;j<=n;j++)

d[i][j]-(p[1]-0;for(i=2;i<=n;i++)

for(i=l;i<=n-1;i++)

minf=1E10;

for(j=1;j<=n;j++)

if(

minf-d[p[j]][j];

a=a+d[p[k]][k];

p[k]=0;

for(j=1;j<=n;j++)

if( ⑤ )p[j]=k;

printf("%0.2f",a);

return 0;


第1题 单选

1处应填

A.

 sqrt((c[i].x-c[i].y)*(c[i].x-c[i].y)+(e[j].x-c[j].y)*(e[j].x-c[j]y))

B.

 sqrt((c[i].x-c[j].x)*(c[j].x-c[i].x)+(¢[i].y-c[j].y)*(e[j].y-e[i].y))

C.

 sqrt((e[i].x-c[j].x)*(œ[i].x-c[j].x)+(c[i].y-c[j].y)*(c[i].y-c[j].y)

D.

sqt((c[i].x-c[i].y)*(c[j].x-c[j].y)+(c[i].x-c[i].y)*(c[j].x-c[j].y));

第2题 单选

2处应填

A.

p[i]=1

B.

p[i]=0

C.

p[n-i]=0

D.

p[n-i]=1;

第3题 单选

3处应填

A.

p[j]==0 && d[p[j]][j]<minf

B.

p[j]! =0 && d[p[j]][j]<minf

C.

p[j]==0 ll d[p[j]][j]<minf

D.

p[j]! =0 ll d[p[j]][j]<minf

第4题 单选

4处应填

A.

k=minf;

B.

k=0

C.

.k=i

D.

k=j

第5题 单选

5处应填

A.

d[p[j]][j]>d[k][j]

B.

d[p[j]][j]<d[k][j]

C.

d[p[i]][j]>d[k][j]

D.

d[p[i]][j]<d[k][j]

发表评论

登录 后再回复