[COCI 2017-2018-2]-San
[COCI 2017-2018-2]-San
san(1s64M)
游戲世界中有N個樓從左到右排列,從左到右編號為1到N,第i幢樓的高度為Hi,樓上的金幣數(shù)為Gi,游戲可以從任意一個樓開始且包涵幾步。每一步玩家可以從當前位置向右跳(可以跳過一些樓)但必須跳到不低于當前樓的高度的樓上。他到了樓上后,可以得到樓上的金幣。他可以在跳任意步(可以是零步)后結束游戲,但是要保證收到的金幣數(shù)要大于等于K,現(xiàn)在想知道共有多少不同的種方案滿足游戲。兩個方案不同是指至少有一個樓不一樣的方案。
輸入:
第一行兩個數(shù)?N (1 ≤??N ≤?40) and ?K (1 ≤??K ≤?4·10?^10??)
接下來N行,每行兩個正整數(shù),第i行用Hi和Gi表示第i個樓的高度和上面的金幣。?(1 ≤?Hi, ?Gi ≤?109??)
輸出一行一個數(shù),表示方案總數(shù)。
In? ?test? ?cases? ?worth? ?40%? ?of? ?total? ?points,? ?it? ?will? ?hold? ??N? ?≤???20.
SAMPLE?? ??TESTS
input input input
4? ?6
2? ?1
6? ?3
7? ?2
5? ?6
Output
3
樣例1對應的方案? ?{1,? ?2,? ?3},? ?{1,? ?4}? ?and? ?{4}
對于40%的數(shù)據(jù),n<=20
對于100%的數(shù)據(jù),n<=40
1.n<=20
爆搜即可。
2.n<=40
solution1:暴力+剪枝。
solution2:折半搜索法。
將n拆成兩半:
我們可以分別算出兩個獨立區(qū)間的貢獻,再嘗試算出由左區(qū)間到右區(qū)間的貢獻。
維護樹狀數(shù)組(線段樹)每一次二分詢問答案即可。
?
此題中的內存限制為64MB,所以在維護時需特別注意空間。
本萌新在考試時因內存限制被卡掉10分。。。
總結
以上是生活随笔為你收集整理的[COCI 2017-2018-2]-San的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 斜率优化Convex Hull Tric
- 下一篇: 霸王花的功效与作用、禁忌和食用方法