日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【八校联考2013】百团大战

發布時間:2023/12/18 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【八校联考2013】百团大战 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目大意

在數軸上,每一秒可以移動v個單位,有n個得分點,在ti時刻移動到xi可以得到一分。問:若時刻00這個位置則最多可以得多少分?若時刻0在任意位置最多可以得多少分?

1<=n<=100000,|xi|<=200,000,000,1<=Ti<=1,000,000


我的分析

這道題在做的時候我用的是O(nlog2n)的樹狀數組套動態開點的線段樹。然而這種做法線段樹是可以略去的= =,主要是式子里的一些性質沒有找出來。

我的方法思路主要如下。首先先把ti=0xi=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】百团大战的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。