【省选模拟】20/05/29

A A A

B B B

  • 考虑二分这个 k k k,我们暴力建出图,用 h a s h hash hash 来判重和连边,合法当且仅当没有环,考虑怎么输出方案,首先可以在 d a g dag dag 贪心出每个点向后的最长链,只需要考虑起点,发现需要支持比较两个串的字典序,选好起点之后在 d a g dag dag 上贪心选最小的后继即可, C o d e Code Code

C C C

  • 首先考虑在上方 d d d 走了不超过半圈的情况,简单推导可以得到就是积这么一个东西

∫ a b d ∗ ( cos ⁡ ( x R ) cos ⁡ ( x R + α ) − 1 ) d x = ∫ a + d b + d d ∗ ( cos ⁡ ( y R − α ) cos ⁡ y − 1 ) d y ∫ a + d b + d d ∗ ( cos ⁡ α + tan ⁡ y R sin ⁡ α − 1 ) d y \int_{a}^{b} d*(\frac{\cos(\frac{x}{R})}{\cos(\frac{x}{R}+\alpha)}-1)\text{d}x\\=\int_{a+d}^{b+d} d*(\frac{\cos(\frac{y}{R}-\alpha)}{\cos y}-1)\text{d}y\\ \int_{a+d}^{b+d} d*(\cos \alpha+\tan \frac{y}{R}\sin \alpha-1)\text{d}y abd(cos(Rx+α)cos(Rx)1)dx=a+db+dd(cosycos(Ryα)1)dya+db+dd(cosα+tanRysinα1)dy ∫ d ∗ ( cos ⁡ α + tan ⁡ y R sin ⁡ α − 1 ) d y = d ( cos ⁡ α y R − R sin ⁡ α ln ⁡ ( cos ⁡ y R ) − y R ) = d ( ( cos ⁡ α − 1 ) x R − R sin ⁡ α ln ⁡ ( cos ⁡ ( x + d R ) ) \int d*(\cos \alpha+\tan \frac{y}{R}\sin \alpha-1)\text{d}y\\=d(\cos\alpha \frac{y}{R}-R\sin\alpha \ln(\cos \frac{y}{R})-\frac{y}{R})\\=d((\cos\alpha-1)\frac{x}{R}-R\sin\alpha\ln(\cos (\frac{x+d}{R})) d(cosα+tanRysinα1)dy=d(cosαRyRsinαln(cosRy)Ry)=d((cosα1)RxRsinαln(cos(Rx+d))

  • 下面考虑转了多圈的情况(准确的说是多个半圈,因为在圆的两半计算方式是不同的)
    如果积分的两个点满足走 d d d 步后在同一个半圆,那么它们的贡献可以一起算,我们只需要根据半圆的奇偶性来减掉圈数乘上周长的积分
    ∫ a b cos ⁡ ( x R ) C d x \int _{a}^b\cos(\frac{x}{R})C\text{d}x abcos(Rx)Cdx
    若积分区间在同一个圆但不是一个半圆,我们需要二分出半圆的分界点, C o d e Code Code
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FSYo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值