UVA-152 Tree's a Crowd

来源:互联网 发布:centos selenium 编辑:程序博客网 时间:2024/06/05 11:21

2016-07-19

UVA - 152 Tree's a Crowd

题目大意:输入一系列三维的点,统计与最近的点距离分别为 0~1、1~2、2~3……8~9 的点的个数。

解题思路:只要题目看懂了就很好A了。计算距离,然后判断距离在哪个范围对应 ++。

#include <iostream>#include <cstring>#include <cstdio>#include <cmath>using namespace std;int num = 0;int Min;int dis;int ans[11];struct point {    int x, y ,z;};point t[10000];int main() {    memset( ans , 0 , sizeof(ans) );    int x, y, z;    while ( scanf("%d%d%d", &t[num].x, &t[num].y, &t[num].z) && ( t[num].x || t[num].y || t[num].z ) )        num++;    for (int i = 0; i < num; i++) {        Min = 100;        for (int j = 0; j < num; j++) {            if ( i == j )                continue;            dis = sqrt( (t[i].x - t[j].x)*(t[i].x - t[j].x) + (t[i].y - t[j].y)*(t[i].y - t[j].y) + (t[i].z - t[j].z)*(t[i].z - t[j].z) );            if ( dis < Min )                Min = dis;        }        if ( Min < 10 )            ans[Min]++;    }    for (int i = 0; i < 10; i++)        printf("%4d",ans[i]);    cout << endl;    return 0;}


0 0
原创粉丝点击