您的位置:首页 > 其它

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(". ");


}


}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: