Everything Has Changed (计算几何)

传送门

题意:

这个问题就是把相交的圆后多的弧线加上去,对大圆来说需要减一部分,对于小圆的部分需要加一段弧线,内切也算。

但是内含就不算了。最后题目交代了给出的圆一定是不会相交的。

题解:

今天多校的一道签到题,但是我没有签上道,后来我看了看dls的计算方法,居然和我的不一样。。。。。

后来我只是把计算的一部分改了改就A了,原因:要是用我的计算方法可能会丢失一点精度。

我的做法:

就是需要把相交的两个点连线,利用方程式求出这条线的表达式,后来代入点到直线的公式后得到d。

然后在它围着的三角形中   以圆的半径为斜边,以d为邻边,用acos(d / R)来计算。后来这种方法会丢失精度,

还需要加判断,因为相交的程度不同,表示的弧是不同的。if( d >= Dis( C1,C2 ) )时必须要换成另一边的弧。

但是这个方法的确是可以算出示例来,但是后来的数会出现精度丢失,所以很遗憾不能AC还爆零了。

正解:

我听了dls后的做法,我就试着改一小部分,看一看是不是我这样计算得到的答案会出问题。

居然还真是,不过我也很开心,因为自己能凭实力AC。

正解的方法是把圆心和相交的两个点连线,还需要把两个圆心连线。然后得到一个三角形,只要余弦定理计算即可。

所以,比赛时不能进入死胡同,本来自己就不太行,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值