【省選模擬】20/05/29

AA

  • 從父親繼承線性基,每一位保留深度最大的點,CodeCode

BB

  • 考慮二分這個 kk,我們暴力建出圖,用 hashhash 來判重和連邊,合法當且僅當沒有環,考慮怎麼輸出方案,首先可以在 dagdag 貪心出每個點向後的最長鏈,只需要考慮起點,發現需要支持比較兩個串的字典序,選好起點之後在 dagdag 上貪心選最小的後繼即可,CodeCode

CC

  • 首先考慮在上方 dd 走了不超過半圈的情況,簡單推導可以得到就是積這麼一個東西

abd(cos(xR)cos(xR+α)1)dx=a+db+dd(cos(yRα)cosy1)dya+db+dd(cosα+tanyRsinα1)dy\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}yd(cosα+tanyRsinα1)dy=d(cosαyRRsinαln(cosyR)yR)=d((cosα1)xRRsinαln(cos(x+dR))\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}))

  • 下面考慮轉了多圈的情況(準確的說是多個半圈,因爲在圓的兩半計算方式是不同的)
    如果積分的兩個點滿足走 dd 步後在同一個半圓,那麼它們的貢獻可以一起算,我們只需要根據半圓的奇偶性來減掉圈數乘上週長的積分
    abcos(xR)Cdx\int _{a}^b\cos(\frac{x}{R})C\text{d}x
    若積分區間在同一個圓但不是一個半圓,我們需要二分出半圓的分界點,CodeCode
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章