先翻译一下题目:
题目描述:
米尔科和斯拉夫科在他们的周末度假屋前建了一个宏伟的新泳池。这个泳池是一个等腰直角三角形,直角边长度为250。一切都完美无缺,女孩们要来,DJ也要来,派对热闹非凡。但是,出了一个问题。
输入模式:
第一行包含两个整数,即分割线段一个端点的坐标。该点将位于泳池的某一条边上。
输出模式:
输出另一个端点的坐标,保留两位小数。
好的,进入正轨。
此题拿到题,第一眼看分类讨论,分三类,在竖线,横线和斜线。
我们可以先记起始点的坐标分别为 xxx 和 yyy 。
首先先判断竖线的情况。
我们可以发现随着起始点从上往下,结尾点从横线到了斜线,所以这里还需要分类讨论。
但操作里应该填什么呢?
我们可以用等积法列方程。设结尾点的坐标分别为XXX和YYY。
这里当 y≥125.0y≥125.0y≥125.0 时我们可以确定 Y=0Y=0Y=0 。所以就是解一元一次方程。
化简后可得 X=sum/yX=sum/yX=sum/y ,这里 sumsumsum 是三角形的面积。
然后是 y<125.0y<125.0y<125.0 的情况。
但这次我们不能确定 XXX 和 YYY 其中任何一点的初始值了。那怎么办?学过平面坐标系的都知道这个斜边的斜率肯定是 454545 度,如果以右下角的角所在的坐标是 (0,0)(0,0)(0,0) ,那函数解析式肯定是 y=−xy=−xy=−x 。但问题是,它不是。但没关系我们不妨看它就是原点。最后再减过来。我们便可以得到 XXX 和 YYY 的关系式了。
由此便可以解出,第一种情况。
同理,第二种只需要将第一种情况中的所有 xxx 和 yyy , XXX 和 YYY 调换一下就可以了。现在就是最后一种情况了。
最后一种情况同样也要分两种小情况,一种是结束点在竖线上,另外一种则是在横线上。而这两种情况都可以确定 XXX 和 YYY 其中一个的位置,这样就可以列方程了。
代码如下。