第十二届北航程序设计竞赛初赛——勾肥大战题解

本题中假定了屠夫不会影响友方单位的肉钩,所以我们可以对每个己方屠夫单独考虑。对己方屠夫 a ,敌方屠夫b,如果 a 能钩到b,那么被钩的地方 C ab初始位置 AB 会形成一个 ABC 。 易得, AB=dis(A,B) 。设出钩到被钩到的时间为 t BAC=α dis(A,B)=l ,则 AC=vatBC<=vbt ,因为我们求的是范围,希望 alpha 尽量大,由 cosα=AB2+AC2BC22ABBC ,所以 BC=vbt 。代入余弦公式后,我们可以得到 cosα=v2av2b2lvat+l2va1t ,这样,我们就得到了一个 cosα 为因变量, t 为自变量的函数,显而易见,这是一个对勾函数,当t=lv2av2b时, α 取得最大值(代入 AC,BC 就会发现 BCAB )。但是因为屠夫是不能越过峡谷的,所以可能取不到最大值,这时候就需要算出他们在 y 轴相遇的点,这个可以解一元二次方程求得。设γj为第 i 位己方屠夫到第j位敌方屠夫的射线与 y 轴正方向的夹角,对第i位己方屠夫可得, θ1=minmj=1(γjαj1),θ2=maxmj=1(γj+αj2)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值