贪心
题意:给出一个圆心和另一个需要走到的圆心,你每次可以让圆走0~2r的距离,问需要的最小步数。
思路:圆心最大走过的路程为其半径的2倍,所以先用最大路程去除原来圆心到需要的新圆心的距离,如果不能整除那么答案再加上1即可。
#include<stdio.h>
#include<math.h>
int main()
{
__int64 r,x0,y0,x1,y1;
while(~scanf("%I64d%I64d%I64d%I64d%I64d",&r,&x0,&y0,&x1,&y1))
{
__int64 dis=(x0-x1)*(x0-x1)+(y0-y1)*(y0-y1);
__int64 step=2*r*2*r;
__int64 ans=sqrt((dis/step)*1.0);//判断是否能够整除
if(!(ans*ans*step==dis)) ans++;
printf("%I64d\n",ans);
}
return 0;
}