若是凉夜已成梦

青春里 总有些事情要努力去做 总有些梦想要拼命去追。


  • 运维

  • 前端

  • 编程

  • 随笔

  • hust-oj

1324: 平面4点最小距离

发表于 2017-10-06   |   分类于 HUSTOJ   |   阅读次数 1,187

题目描述

已知平面上若干个点的坐标。
需要求出在所有的组合中,4个点间平均距离的最小值(四舍五入,保留2位小数)。
比如有4个点:a,b,c,d, 则平均距离是指:ab, ac, ad, bc, bd, cd 这6个距离的平均值。
每个点的坐标表示为:横坐标,纵坐标
坐标的取值范围是:1~1000

输入

暂无

输出

暂无

样例输入

10,10
20,20
80,50
10,20
20,10

样例输出

11.38

参考代码

#include<stdio.h>
#include<math.h>
float x[100],y[100];
float lu(int a,int b,int c,int d) 
{
    return sqrt((x[a]-x[b])*(x[a]-x[b])+(y[a]-y[b])*(y[a]-y[b]))+sqrt((x[a]-x[c])*(x[a]-x[c])+(y[a]-y[c])*(y[a]-y[c]))+sqrt((x[a]-x[d])*(x[a]-x[d])+(y[a]-y[d])*(y[a]-y[d]))+sqrt((x[b]-x[c])*(x[b]-x[c])+(y[b]-y[c])*(y[b]-y[c]))+sqrt((x[b]-x[d])*(x[b]-x[d])+(y[b]-y[d])*(y[b]-y[d]))+sqrt((x[c]-x[d])*(x[c]-x[d])+(y[c]-y[d])*(y[c]-y[d]));
}
int main() 
{
    float shu,min=1000000;
    int i,j,m,n,k,l;
    i=0;
    while(scanf("%f,%f",&x[i],&y[i])!=EOF)
        i++;
    n=i;
    for (i=0;i<n-3;i++) 
    {
        for (j=i+1;j<n-2;j++) 
        {
            for (k=j+1;k<n-1;k++) 
            {
                for (l=k+1;l<n;l++) 
                {
                    shu=lu(i,j,k,l);
                    if(min>shu)
                                        min=shu;
                }
            }
        }
    }
    printf("%.2f",min/6);
}

解析

暂无

hustoj

发表评论 取消回复

电子邮件地址不会被公开。 必填项已用*标注

*
*


hoxis wechat
著作权归作者所有
站点更新说明
  • 文章目录
  • 站点概览
若是凉夜已成梦

若是凉夜已成梦

青春里 总有些事情要努力去做 总有些梦想要拼命去追。

1904 日志
6 分类
12 标签
RSS
weibo github twitter facebook

友情链接

原站点 Skip Dreams孤独患者
© 2017 若是凉夜已成梦
Powered by WordPress | 已运行
Theme By NexT.Mist