/hdu 1030 Delta-wave (建坐标找最小步骤路径)

来源:互联网 发布:网络招商平台 编辑:程序博客网 时间:2024/05/19 06:46
//hdu 1030 Delta-wave (建坐标找最小步骤路径)#include<iostream>#include<cstdio>#include<string.h>#include<math.h>using namespace std;struct node{    int mid,right,left;//mid就是正的层坐标,right就是右的坐标,left就是左的坐标};node coordinate(int n){    node temp;    int nsq=sqrt(n);    if(nsq*nsq==n)    {        temp.mid=nsq;        temp.right=1;        temp.left=nsq;        return temp;    }    else    {        temp.mid=nsq+1;        temp.right=1+(((nsq+1)*(nsq+1))-n)/2;        temp.left=1+(n-((nsq*nsq)+1))/2;    }    return temp;}int jAbs(int a,int b){    if(a>b)        return a-b;    return b-a;}int main(){    int n1,n2;    node nd1,nd2;    while(cin>>n1>>n2)    {        nd1=coordinate(n1);        nd2=coordinate(n2);        cout<<jAbs(nd1.mid,nd2.mid)+jAbs(nd1.right,nd2.right)+jAbs(nd1.left,nd2.left)<<endl;    }    return 0;}

0 0
原创粉丝点击