1 #include <iostream> 2 #include <algorithm> 3 #include <cmath> 4 #include <cstdio> 5 using namespace std; 6 const int Max = 5000 + 10; 7 int x[Max]; 8 int y[Max]; 9 int z[Max]; 10 int d[11] = { 11 0 12 }; 13 int dis(int i,int j); 14 int main() 15 { 16 int i = 0; 17 while(cin >> x[i] >> y[i] >> z[i], x[i] || y[i] || z[i]) 18 { 19 i++; 20 } 21 // sort(d,d+i); 22 for(int j = 0 ; j < i ; j++) 23 { 24 int min = 10000000; 25 for(int k = 0 ; k < i;k++) 26 { 27 if(j == k) continue; 28 int t = dis(j,k); 29 if(min > t) 30 min = t; 31 } 32 if(min >= 0 && min <= 9) 33 { 34 d[min]++; 35 } 36 } 37 for(int j = 0; j < 10; j++) 38 printf("%4d",d[j]); 39 cout << endl; 40 41 return 0; 42 } 43 int dis(int i , int j) 44 { 45 double t = sqrt(static_cast<double>((x[i] - x[j]) *(x[i] - x[j]) + 46 (y[i]- y[j])*(y[i] - y[j]) + 47 (z[i] - z[j]) * (z[i] - z[j]))); 48 return static_cast<int>(t); 49 }
暴力,从第一个点开始,求出与其他点的距离,求最小值,如果在0-9之内,那个范围的频率都加一。
浙公网安备 33010602011771号