标签:
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 19930 Accepted Submission(s): 6240
2 2 10 10 20 20 3 1 1 2 2 1000 1000
1414.2 oh!
函数名:
pow
功 能: 指数函数(x的y次方)
用 法: double pow(double x, double y);
所以结果虽然正确,但是提交时出现编译错误;
#include<stdio.h> #include<string.h> #include<math.h> #define M 1000000 double eg[400][400],vid[1000]; int a[1000],b[1000],p[1000]; int n,m; void prim() { int k,r; double min; memset(p,0,sizeof(p)); for(int i=1;i<=m;i++) vid[i]=eg[1][i]; p[1]=1; vid[1]=0; for(int i=2;i<=m;i++) { min=M; k=1; for(int j=1;j<=m;j++) if(!p[j]&&vid[j]<min) { min=vid[j]; k=j; } if(min==M) { printf("oh!\n"); //break; return ; } p[k]=1; for(int t=1;t<=m;t++) if(!p[t]&&vid[t]>eg[k][t]) vid[t]=eg[k][t]; } double sum=0; for(int i=2;i<=m;i++) sum+=vid[i]*100; printf("%.1lf\n",sum); return ; } int main() { scanf("%d",&n); while(n--) { int i,j,k; scanf("%d",&m); for(i=1;i<=m;i++) scanf("%d%d",&a[i],&b[i]); double w; for(i=1;i<=m;i++) for(j=1;j<=m;j++) { w=sqrt(pow(1.0*a[i]-a[j],2)+pow(1.0*b[i]-b[j],2)); if(w>=10&&w<=1000) eg[i][j]=w; else eg[i][j]=M; } memset(vid,0,sizeof(vid)); prim(); } return 0; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:
原文地址:http://blog.csdn.net/l15738519366/article/details/47441447