POJ2977 小学生的考试题,暴力得出O(1)的解法

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<vector>
using namespace std; int ans;
void turn(int i,int j,int x,int y,int z,int x0,int y0,int L,int W,int H)
{
if(z==0)ans=min(ans,(x-x0)*(x-x0)+(y-y0)*(y-y0));
else
{
if(i>=0&&i<2)
turn(i+1,j,H-z,y,x,x0+H,y0,H,W,L);
if(j>=0&&j<2)
turn(i,j+1,x,H-z,y,x0,y0+H,L,H,W);
if(i<=0&&i>-2)
turn(i-1,j,z,y,L-x,x0-L,y0,H,W,L);
if(j<=0&&j>-2)
turn(i,j-1,x,z,W-y,x0,y0-W,L,H,W);
}
} int rect_dist(int L,int W,int H,int x1,int y1,int z1,int x2,int y2,int z2)
{
if(z1!=0&&z1!=H)
if(y1==0||y1==W)
swap(y1,z1),swap(y2,z2),swap(W,H);
else
swap(x1,z1),swap(x2,z2),swap(L,H);
if(z1==H)
z1=0,z2=H-z2;
ans=1<<30;
turn(0,0,x2,y2,z2,x1,y1,L,W,H);
return ans;
} int main()
{//freopen("t.txt","r",stdin);
int L,W,H,x,y,z;
while(scanf("%d%d%d%d%d%d",&L,&W,&H,&x,&y,&z))
{
if(L==0&&W==0&&H==0&&x==0&&y==0&&z==0)return 0;
printf("%d\n",rect_dist(L,W,H,0,0,0,x,y,z));
}
return 0;
}

  

POJ 2977 Box walking 长方体表面两点距离的更多相关文章

  1. POJ 2977 Box walking

    题目链接:http://poj.org/problem?id=2977 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 222 ...

  2. 计算两点距离 ios

    //计算两点距离 -(float)distanceBetweenTwoPoint:(CGPoint)point1 point2:(CGPoint)point2 { ) + powf(point1.y ...

  3. 【百度地图API】如何根据摩卡托坐标进行POI查询,和计算两点距离

    原文:[百度地图API]如何根据摩卡托坐标进行POI查询,和计算两点距离 摘要: 百度地图API有两种坐标系,一种是百度经纬度,一种是摩卡托坐标系.在本章你将学会: 1.如何相互转换这两种坐标: 2. ...

  4. 高德地图测两点距离android比较精确的

    /////参考资料:高德官方:[http://lbs.amap.com/api/android-location-sdk/guide/android-location/getlocation] 主要三 ...

  5. HDU 5723 Abandoned country(kruskal+dp树上任意两点距离和)

    Problem DescriptionAn abandoned country has n(n≤100000) villages which are numbered from 1 to n. Sin ...

  6. 模板倍增LCA 求树上两点距离 hdu2586

    http://acm.hdu.edu.cn/showproblem.php?pid=2586 课上给的ppt里的模板是错的,wa了一下午orz.最近总是被坑啊... 题解:树上两点距离转化为到根的距离 ...

  7. hdu6446 网络赛 Tree and Permutation(树形dp求任意两点距离之和)题解

    题意:有一棵n个点的树,点之间用无向边相连.现把这棵树对应一个序列,这个序列任意两点的距离为这两点在树上的距离,显然,这样的序列有n!个,加入这是第i个序列,那么这个序列所提供的贡献值为:第一个点到其 ...

  8. js根据经纬度计算两点距离

    js版-胡老师 google.maps.LatLng.prototype.distanceFrom = function(latlng) {    var lat = [this.lat(), lat ...

  9. HDU_5723_最小生成树+任意两点距离的期望

    Abandoned country Time Limit: 8000/4000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others ...

随机推荐

  1. Ajax实现跨域访问最新方式

    在实际项目当中,我们经常会遇到同一个域名下不同项目之间通过Ajax相互调用数据,这样问题就来了,如何通过Ajax实现跨域呢? 解决方案 1.Jsonp Jsonp解决跨域相对简单,服务器无需任何配置. ...

  2. Windows系列原版系统镜像下载

    原版系统镜像下载 Windows 10 系统 Windows 10 企业版 1511版 (64位) Windows 10 Enterprise, Version 1511 (x64) – DVD (C ...

  3. PHP 反射API

    出处:http://blog.csdn.net/hguisu/article/details/7357421 PHP5添加了一项新的功能:Reflection.这个功能使得phper可以reverse ...

  4. ORM之连表操作

    ORM之连表操作 -----------------------------连表的正向操作------------------------- 在models.py中创建两张表UserType和User ...

  5. 选项B中:int b[][3]={0,1,2,3}

    选项B中:int b[][3]={0,1,2,3};等价于 int b[][3]={0,1,2,3,0,0};    int b[][3]={0,1,2,3,4};         cout<& ...

  6. Python中的列表(2)

    一.从列表中删除元素 使用del 语句删除. books = ['Pride and Prejudice','Jane Eyre','The Catcher in the Rye'] print(bo ...

  7. Django的forms包部分重要用法:

    from django.forms import fields from django.forms import Form from django.forms import widgets 在view ...

  8. 【02】HTML5与CSS3基础教程(第8版)(全)

    [02]HTML5与CSS3基础教程(第8版)(全)   共392页.   (魔芋:大体上扫了一遍.没有什么新东西,都是入门的一些基础知识.) 已看完.       [美]elizabeth cast ...

  9. 如何使用JDK1.6 API

    如何使用JDK1.6 API-------https://jingyan.baidu.com/article/54b6b9c0e39a102d583b47d5.html  

  10. 56. spring boot中使用@Async实现异步调用【从零开始学Spring Boot】

    什么是"异步调用"? "异步调用"对应的是"同步调用",同步调用指程序按照定义顺序依次执行,每一行程序都必须等待上一行程序执行完成之后才能执 ...