當前位置:
首頁 >
D. Berserk And Fireball(Educational Codeforces Round 91 (Rated for Div. 2))
發布時間:2023/12/16
46
豆豆
生活随笔
收集整理的這篇文章主要介紹了
D. Berserk And Fireball(Educational Codeforces Round 91 (Rated for Div. 2))
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目鏈接
題意
給一個序列A,A中所有元素均不同,再給一個序列B。現允許兩種操作,
(1)花費x,去除連續k個元素
(2)花費y,取兩個連續的元素并把較小的元素去除
問是否可能讓A通過操作變為B,如果可以,最少費用是多少?
思路
B里面的元素相對位置如果與A不同,那么肯定不能讓A->操作->B
否則,B里面的元素相對位置與A相同
顯然,可以把這個A分成很多序列,對于每一個序列,處理操作相同,現討論一個序列的處理方法。
L [.P.]R
L、R不需要刪除
[…]均需要刪除,里面當中的最大值P
m表示[…]元素個數
如果m % k不為0
也就是說操作二至少要m%k次,即P消除其他元素。
如果m > k,則通過操作二,m>=k && m%k為0
否則m < k,則通過操作二,m = 1
(如果P > L && P > R,則輸出-1)
通過上述操作,可以讓m%k為0
顯然,必有A->操作->B
如果(x <= k * y),即操作一更優,那么對于m個元素,全部用操作一。
否則,盡量最大化操作二的次數。
如果P<L或P<R,則對于m個元素,全部用操作二
否則,一直進行操作一直到剩下k個元素,對k個元素進行操作一即可
AC代碼
總結
以上是生活随笔為你收集整理的D. Berserk And Fireball(Educational Codeforces Round 91 (Rated for Div. 2))的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python--判断一个数字的奇偶性
- 下一篇: html中选择器是什么意思,css中的选