pku 1870 bee breeding
2007-10-10 15:36
337 查看
想到坐标的转换是重点。参看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(". ");
}
}
#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(". ");
}
}
相关文章推荐
- pku1870 Bee Breeding
- poj 1870 Bee Breeding
- POJ 1870 Bee Breeding(找规律)
- POJ 1870 Bee Breeding
- POJ 1870 Bee Breeding
- POJ 1870 Bee Breeding
- POJ 1870 Bee Breeding
- poj1870 Bee Breeding
- UVA 808 Bee Breeding (坐标法)
- UVa808 - Bee Breeding(坐标法)
- poj-1807-Bee Breeding-坐标系
- uva 808 - Bee Breeding(坐标问题)
- UVA808 - Bee Breeding
- UVa 808 (建坐标系、找规律) Bee Breeding
- UVA 808 - Bee Breeding(数论+坐标系)
- Bee Breeding UVA - 808
- pku 2296 第一周训练——模拟
- pku1548 Robots
- pku Wormholes 第一周训练——最短路
- pku 1062 昂贵的聘礼 第一周训练——最短路