浙江省赛2022 J frog

题意:青蛙一次只能跳1单位距离,从圆上一点到另外一点,请问最小步数是多少,且路径所有点都不能经过⚪内

解法 旋转至a在角度为0处,这样b只会在0-180度浮动,然后可以分情况讨论

1.a=b 此时步数为0

2.b-a<=90只需要构造圆外等腰三角形 步数为2 顶点坐标根据等腰三角形三点一线推得(xa+xb,ya+yb);

3.对于步数3跟步数4 不难发现要对于a与b切线两点距离小于等于1与大于1讨论,这个角度可以写个程序跑一下,是b-a<=131时为3,>131为4

剩下细节的问题对于步数3时P的坐标可以根据M,与∠得出

#include <bits/stdc++.h>
using namespace std;
double pi=acos(-1.0);
struct point{
  	double x,y;
    point(double x0=0,double y0=0):x(x0),y(y0){}
};
point rotate(double x,double y,double jiao){
	jiao=jiao*pi/180.0;
	return point(x*cos(jiao)-y*sin(jiao),x*sin(jiao)+y*cos(jiao));
}
void solve(int 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值