1 条题解
-
0
自动搬运
来自洛谷,原作者为

registerGen
一切都是野蛮的。要反对这种野蛮,我们必须也学会野蛮。搬运于
2025-08-24 22:21:04,当前版本为作者最后更新于2020-04-30 11:45:35,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
Solution
一道比较基础的几何题,只要会鸟头定理和定比分点公式就可以做。
对分类讨论的能力要求很高,如图。(因为终点要在三角形边上)

设起点为 ,则要分以下几类:
每种情况该怎么推就自己下去搞吧,不难。
Code
#include<cstdio> #include<algorithm> #include<cmath> int main() { double a,b; scanf("%lf%lf",&a,&b); if(a==0&&b==0) { puts("125.00 125.00"); return 0; } if(a==250) { puts("0.00 125.00"); return 0; } if(b==250) { puts("125.00 0.00"); return 0; } if(a==125&&b==125) { puts("0.00 0.00"); return 0; } if(a==0&&b!=0&&b<=125) { double d1=250.0-b; double d2=250.0; double lambda=(1.0/2.0)/(d1/d2); printf("%.2lf %.2lf\n",250.0*lambda,250.0-250.0*lambda); return 0; } if(a==0&&b!=0&&b>125) { double d1=b; double d2=250.0; double lambda=(1.0/2.0)/(d1/d2); printf("%.2lf 0.00\n",250.0*lambda); return 0; } if(a!=0&&b==0&&a<=125) { double d1=250.0-a; double d2=250.0; double lambda=(1.0/2.0)/(d1/d2); printf("%.2lf %.2lf\n",250.0-250.0*lambda,250.0*lambda); return 0; } if(a!=0&&b==0&&a>125) { double d1=a; double d2=250.0; double lambda=(1.0/2.0)/(d1/d2); printf("0.00 %.2lf\n",250.0*lambda); return 0; } if(a!=0&&b!=0&&a>b) { double d1=sqrt(a*a+(250.0-b)*(250.0-b)); double d2=sqrt(250.0*250.0*2); double lambda=(1.0/2.0)/(d1/d2); printf("0.00 %.2lf\n",250.0-250.0*lambda); return 0; } if(a!=0&&b!=0&&a<b) { double d1=sqrt((250.0-a)*(250.0-a)+b*b); double d2=sqrt(250.0*250.0*2); double lambda=(1.0/2.0)/(d1/d2); printf("%.2lf 0.00\n",250.0-250.0*lambda); return 0; } return 0; }
- 1
信息
- ID
- 5494
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者