【八校联考2013】百团大战
題目大意
在數軸上,每一秒可以移動v個單位,有n個得分點,在ti時刻移動到xi可以得到一分。問:若時刻0在0這個位置則最多可以得多少分?若時刻0在任意位置最多可以得多少分?
1<=n<=100000,|xi|<=200,000,000,1<=Ti<=1,000,000
我的分析
這道題在做的時候我用的是O(nlog2n)的樹狀數組套動態開點的線段樹。然而這種做法線段樹是可以略去的= =,主要是式子里的一些性質沒有找出來。
我的方法思路主要如下。首先先把ti=0和xi=0這個的得分點加入所有點中,然后倒著做,設i,j是兩個不同的得分點且ti>tj,若從i可以到j,則有
|xi?xj|<=(ti?tj)v
因為是絕對值小于某個數,那么不妨忽略掉負的,則有
xi?tiv<=xj?tjv
且
?xi?tiv<=?xj?tjv
兩者同時成立。
如果將xi?tiv和?xi?tiv分別作為x坐標和y坐標來將這些點投影到二維平面上,那么如果兩個點可以轉移那么兩個點與原點構成的矩形必定是包含關系,只需要按x坐標排序,y坐標用樹狀數組維護,再用以ti為關鍵字的線段樹來維護最大值就可以做出來了。
但是考慮左邊是絕對值,如果上面的式子成立的話那么右邊必定為正,那么就是說不需要判斷ti的關系了。那么就是按x坐標排序然后用樹狀數組維護y坐標進行轉移就可以了。
另一種思路
另外還有一個方法,首先把ti全部乘v,也就是把一秒走v步變成v秒走v步,那么可以轉移的部分形成了一個等腰直角三角形,將坐標系旋轉π4,用掃描線來維護轉移就可以了。
一些奇怪的東西
題目要求輸出兩個數在一行,然而我輸出到了兩行導致比賽時這道題爆零了。對拍了個半年,昨天是對拍寫錯了,今天是格式不對。簡直了。
總結
以上是生活随笔為你收集整理的【八校联考2013】百团大战的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 气象专业名词解释
- 下一篇: html中img图片绝对路径时无法正常显