BNUOJ 52296 Nearest Neighbor Search(十一弱校联盟 暴力分情况)
来源:互联网 发布:汇天下p2p源码 编辑:程序博客网 时间:2024/05/16 20:30
思路:
就是在立方体区域内找一点,使平方距离和最小。 有点傻,直接暴力分情况讨论了27种情况。。。
代码:
#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;int main(){int x0,y0,z0;int x1,y1,z1;int x2,y2,z2;while(scanf("%d%d%d%d%d%d%d%d%d",&x0,&y0,&z0,&x1,&y1,&z1,&x2,&y2,&z2)!=EOF){long long res=0;if(x0>=x1&&x0<=x2&&y0>=y1&&y0<=y2&&z0>=z1&&z0<=z2){res=0;}else if(x0>=x1&&x0<=x2&&y0<y1&&z0>=z1&&z0<=z2){res=(y0-y1)*(y0-y1);}else if(x0>=x1&&x0<=x2&&y0>y2&&z0>=z1&&z0<=z2){res=(y0-y2)*(y0-y2);}else if(x0<x1&&y0>=y1&&y0<=y2&&z0>=z1&&z0<=z2){res=(x0-x1)*(x0-x1);}else if(x0>x2&&y0>=y1&&y0<=y2&&z0>=z1&&z0<=z2){res=(x0-x2)*(x0-x2);}else if(x0>=x1&&x0<=x2&&y0>=y1&&y0<=y2&&z0<z1){res=(z0-z1)*(z0-z1);}else if(x0>=x1&&x0<=x2&&y0>=y1&&y0<=y2&&z0>z2){res=(z0-z2)*(z0-z2);}else if(x0<x1&&y0<y1&&z0>=z1&&z0<=z2){res=(x0-x1)*(x0-x1)+(y0-y1)*(y0-y1);}else if(x0<x1&&y0>y2&&z0>=z1&&z0<=z2){res=(x0-x1)*(x0-x1)+(y0-y2)*(y0-y2);}else if(x0>x2&&y0<y1&&z0>=z1&&z0<=z2){res=(x0-x2)*(x0-x2)+(y0-y1)*(y0-y1);}else if(x0>x2&&y0>y2&&z0>=z1&&z0<=z2){res=(x0-x2)*(x0-x2)+(y0-y2)*(y0-y2);}else if(x0<x1&&z0<z1&&y0>=y1&&y0<=y2){res=(x0-x1)*(x0-x1)+(z0-z1)*(z0-z1);}else if(x0<x1&&z0>z2&&y0>=y1&&y0<=y2){res=(x0-x1)*(x0-x1)+(z0-z2)*(z0-z2);}else if(x0>x2&&z0<z1&&y0>=y1&&y0<=y2){res=(x0-x2)*(x0-x2)+(z0-z1)*(z0-z1);}else if(x0>x2&&z0>z2&&y0>=y1&&y0<=y2){res=(x0-x2)*(x0-x2)+(z0-z2)*(z0-z2);}else if(y0<y1&&z0<z1&&x0>=x1&&x0<=x2){res=(y0-y1)*(y0-y1)+(z0-z1)*(z0-z1);}else if(y0<y1&&z0>z2&&x0>=x1&&x0<=x2){res=(y0-y1)*(y0-y1)+(z0-z2)*(z0-z2);}else if(y0>y2&&z0<z1&&x0>=x1&&x0<=x2){res=(y0-y2)*(y0-y2)+(z0-z1)*(z0-z1);}else if(y0>y2&&z0>z2&&x0>=x1&&x0<=x2){res=(y0-y2)*(y0-y2)+(z0-z2)*(z0-z2);}else if(x0<x1&&y0<y1&&z0<z1){res=(x0-x1)*(x0-x1)+(y0-y1)*(y0-y1)+(z0-z1)*(z0-z1);}else if(x0<x1&&y0<y1&&z0>z2){res=(x0-x1)*(x0-x1)+(y0-y1)*(y0-y1)+(z0-z2)*(z0-z2);}else if(x0<x1&&y0>y2&&z0<z1){res=(x0-x1)*(x0-x1)+(y0-y2)*(y0-y2)+(z0-z1)*(z0-z1);}else if(x0<x1&&y0>y2&&z0>z2){res=(x0-x1)*(x0-x1)+(y0-y2)*(y0-y2)+(z0-z2)*(z0-z2);}else if(x0>x2&&y0<y1&&z0<z1){res=(x0-x2)*(x0-x2)+(y0-y1)*(y0-y1)+(z0-z1)*(z0-z1);} else if(x0>x2&&y0<y1&&z0>z2){res=(x0-x2)*(x0-x2)+(y0-y1)*(y0-y1)+(z0-z2)*(z0-z2);}else if(x0>x2&&y0>y2&&z0<z1){res=(x0-x2)*(x0-x2)+(y0-y2)*(y0-y2)+(z0-z1)*(z0-z1);}if(x0>x2&&y0>y2&&z0>z2){res=(x0-x2)*(x0-x2)+(y0-y2)*(y0-y2)+(z0-z2)*(z0-z2);}printf("%lld\n",res);}return 0;}
0 0
- BNUOJ 52296 Nearest Neighbor Search(十一弱校联盟 暴力分情况)
- BNUOJ 52296 Nearest Neighbor Search(2016ACM-ICPC四川省赛A题)
- BNUOJ 52297 Coins(十一弱校联盟 数学)
- Nearest Neighbor Search
- Nearest Neighbor Search
- Nearest Neighbor Search(数学题)
- Problem A. Nearest Neighbor Search ——BNUOJ 点距离立方体最短
- (2016弱校联盟十一专场10.5) F. Fibonacci of Fibonacci (暴力 + 循环节)
- Nearest Neighbor Search:: A Database Perspective
- k Nearest Neighbor Search by CUDA
- k Nearest Neighbor Search by CUDA
- Product quantization for nearest neighbor search
- Product quantization for nearest neighbor search
- 2016 四川省赛 A.Nearest Neighbor Search
- 《Fast k Nearest Neighbor Search using GPU》
- KNN(K-Nearest Neighbor)
- Blocks(弱校联盟十一专场)
- UmBasketella(弱校联盟十一专场)
- Decode String(leetcode),solved by DFS
- 剑指offer之顺时针打印矩阵
- 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
- 角点绘制2
- 求1+2!+3!+...+20!的和。
- BNUOJ 52296 Nearest Neighbor Search(十一弱校联盟 暴力分情况)
- 【CUDA开发】Thrust库
- 【C++研发面试笔记】9. 基本数据结构-二叉查找树BST
- 利用递归方法求5!。
- 树状数组点更新,区间更新理解
- 循环链表API
- 复位按钮的消抖以及初始化代码
- 日常
- 55分钟学会正则表达式