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
原创粉丝点击