分析题意可以看出 要求N!路径总和 可以把每段路径拆开来看 如 1 2 3三个地点
1->2
2->3
1->3的路径长度可以单独算出 而
2->1
3->2
3->1的路径长度和上面的路径长度相同 路径总条数为3!=6 路径总长即为
1->2
2->3
1->3的路径长度*2/6 再加在一起
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
int i,j;
double a[10],b[10];
double c=0;
scanf("%d",&n);
for (i=0;i<n;i++)
{
scanf("%lf%lf",&a[i],&b[i]);
}
for (i=0;i<n-1;i++)
{
for (j=i+1;j<n;j++)
{
c=c+sqrt((a[i]-a[j])*(a[i]-a[j])+(b[i]-b[j])*(b[i]-b[j]))*2/n;
}
}
printf("%.10f",c);
return 0;
}