传送门
题意:
这个问题就是把相交的圆后多的弧线加上去,对大圆来说需要减一部分,对于小圆的部分需要加一段弧线,内切也算。
但是内含就不算了。最后题目交代了给出的圆一定是不会相交的。
题解:
今天多校的一道签到题,但是我没有签上道,后来我看了看dls的计算方法,居然和我的不一样。。。。。
后来我只是把计算的一部分改了改就A了,原因:要是用我的计算方法可能会丢失一点精度。
我的做法:
就是需要把相交的两个点连线,利用方程式求出这条线的表达式,后来代入点到直线的公式后得到d。
然后在它围着的三角形中 以圆的半径为斜边,以d为邻边,用acos(d / R)来计算。后来这种方法会丢失精度,
还需要加判断,因为相交的程度不同,表示的弧是不同的。if( d >= Dis( C1,C2 ) )时必须要换成另一边的弧。
但是这个方法的确是可以算出示例来,但是后来的数会出现精度丢失,所以很遗憾不能AC还爆零了。
正解:
我听了dls后的做法,我就试着改一小部分,看一看是不是我这样计算得到的答案会出问题。
居然还真是,不过我也很开心,因为自己能凭实力AC。
正解的方法是把圆心和相交的两个点连线,还需要把两个圆心连线。然后得到一个三角形,只要余弦定理计算即可。
所以,比赛时不能进入死胡同,本来自己就不太行,