pku 1870 bee breeding

标签: iostream algorithm
553人阅读 评论(0) 收藏 举报

想到坐标的转换是重点。参看pku 2265 bee maja

#include <iostream>
#include 
<cmath>
#include 
<algorithm>
using namespace std;

// 1 is inlayer 0
// east ,west ,...
void getPos(int& x,int& y,int l)
...{
    
int type,temp,k;
    k 
= ceil((-1+sqrt(1.0+4.0/3.0*l))/2.0);
    l
-=1+3*k*(k-1);
    type
=l/k;//确定在哪个方位
    temp=l%k;//确定是这个方位的第几个元素
    if(type==1...{
        x
=k;y=-temp;
    }
 else if(type==2...{
        x
=k-temp;y=-k;
    }
 else if(type==3...{
        x
=-temp;y=-k+temp;
    }
 else if(type==4...{
        x
=-k;y=temp;
    }
 else if(type==5...{
        x
=-k+temp;y=k;
    }
 else if(type==0...{
        x
=temp;y=k-temp;
        
if(l==0) y--;
    }

    
return;
}


int main()
...{
    
int a,b;
    
int x1,y1,x2,y2;
    
while (scanf("%d%d",&a,&b)!=EOF)
    
...{
        
if (a==0)break;
        printf(
"The distance between cells %d and %d is ",a,b);
        getPos(x1,y1,a);
        getPos(x2,y2,b);
        x2
-=x1;
        y2
-=y1;
        
if (x2*y2>0)
            printf(
"%d",abs(x2+y2));
        
else
            printf(
"%d",max(abs(x2),abs(y2)));
        printf(
". ");
    }

}

 


查看评论

POJ 1870 Bee Breeding

这种烂题我再也不想见到了!! 比模拟题还讨厌!! 题目大意: 根据题目给出的各个数的位置,求某两个数之间的位置。 解题思路: 由给出的位置可以找到一个规律,二维的六个象限的坐...
  • lin375691011
  • lin375691011
  • 2014-08-13 19:32:16
  • 4545

POJ 1870 Bee Breeding

题意:这题图看不太清,大意就是给定蜂巢上两点,求他们的最短距离。 题解:首先定然是建一个好一点的系,实际上也说不上好坏,能表示就行。我的系是向下走x+1,反之x-1,向右下走y+1,左上走y-1,对...
  • tmeteorj
  • tmeteorj
  • 2013-04-08 18:01:14
  • 1201

uva 808 - Bee Breeding(坐标问题)

题目链接:uva 808 - Bee Breeding 题目大意:按照题目中图片的方式将所有的正六边形标上序号,然后给出两个序号,问这两六边形最短要走多少步。 解题思路:将图中的坐...
  • u011328934
  • u011328934
  • 2014-05-01 13:04:33
  • 1766

UVA808 - Bee Breeding

参考某神牛的解题思路。。orz #include #include #include #include #include #include #include using namespa...
  • THE___BEST
  • THE___BEST
  • 2015-10-08 20:06:03
  • 827

poj1870 Bee Breeding

题意:首先给的图不是很清楚  为了好说明  用下图示范             如图  这是一个蜂窝  1在中间 然后依次旋转扩散开来 (每个数字代表一个小孔)  然后给你两个数字 让你求出这两孔之...
  • bigsungod
  • bigsungod
  • 2015-02-23 21:01:42
  • 408

Bee Breeding UVA - 808

选取图中1->5方向作为y轴,1->7方向作为x轴建立相应的坐标系,那么我们就可以直接从图形中发现在第2、4象限,对应的点到原点的距离为x和y坐标的绝对值的最大值,在1、3象限就是x的绝对值和y的绝对...
  • zju2016
  • zju2016
  • 2017-11-12 21:23:44
  • 56

pku1870 Bee Breeding

题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=1870题意简述:题目意思很清楚,按照如图的标号,求两点之间的距离。解题思路:CSDN blog好烂...
  • ccsu_001
  • ccsu_001
  • 2010-03-07 19:12:00
  • 535

UVA 808(p342)----Bee Breeding

#include #include #include using namespace std; const int maxn=1e4; struct point { long long x,...
  • wang2147483647
  • wang2147483647
  • 2016-02-25 23:22:11
  • 491

UVa808 - Bee Breeding(坐标法)

题意:给定图中蜂窝两点,求最短距离 思路:建坐标系,然后根据图中走的顺序把每个点的坐标求出来,然后利用坐标去求最小距离 #include #include #include #includ...
  • a197p
  • a197p
  • 2015-05-12 14:49:37
  • 1123

HDU1870

栈的基础水题 看懂题意就会写了,是(入栈是)出一个,表示抵销,不会拆这个礼物。#include #include #include using namespace std; int main() { ...
  • yexiaohhjk
  • yexiaohhjk
  • 2015-04-25 14:39:08
  • 356
    个人资料
    等级:
    访问量: 4万+
    积分: 847
    排名: 6万+
    文章分类
    最新评论