本文主要是介绍【省选模拟】20/05/29,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
A A A
- 从父亲继承线性基,每一位保留深度最大的点, C o d e Code Code
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)dy∫a+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αRy−Rsinαln(cosRy)−Ry)=d((cosα−1)Rx−Rsinα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
这篇关于【省选模拟】20/05/29的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!