您当前的位置: 首页 >  c++

小天才才

暂无认证

  • 0浏览

    0关注

    168博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

CCF小白刷题之路---202009-1 称检测点查询(C/C++100分)

小天才才 发布时间:2020-10-06 20:00:13 ,浏览量:0

1.题目详情

在这里插入图片描述

2.解题思路

本题难度不大,主要是在计算距离和判断距离远近的时候有些小细节需要注意,在计算距离时最好用平方直接进行大小比较,避免开根号产生浮点数影响后续结果,然后本题我是定义了一个结构体(distance和id),最后用sort函数进行大小比较,所以这里需要自己定义排列顺序,即cmp,最后输出前三个就行。

3.代码实现
#include
#include
using namespace std;

struct node{
    int distance; //距离
    int id;       //检测点编号
};

bool cmp(node n1,node n2) //自定义sort顺序
{
    if(n1.distance==n2.distance) //距离一样编号小的排在前面
        return n1.id n>>x>>y;
    node point[n];
    for(int i=0;i>point_x>>point_y;
        point[i].distance = (point_x-x)*(point_x-x) + (point_y-y)*(point_y-y);
        point[i].id = i+1;
    }
    sort(point,point+n,cmp);
    for(int i=0;i            
关注
打赏
1658396332
查看更多评论
0.0449s