題目鏈結
解題思想:差分+字首和
/*解題思路:對於n個糖糖,每個有能力值bi,對整個糖糖陣列進行ci次操作,每次操作完bi+1,對於每次判斷哪些糖糖會被消滅,如果暴力的話每次都要掃瞄ci之前的區間以判斷在ci之
前和第i個糖糖不同組且bi更小的,顯然這樣的話至少是n方的複雜度,但是空間限制數量級約是10的7次方,n可以達到10的5次方,再平方一下就超了,明顯不行,那麼我們來觀察一下,
對於每次操作,影響的都是ci前面的區間,每次加1,那麼我們來維護一下字首和陣列csum[i-1],對於1~j區間(j>=i)csum[j-1]-csum[i-1]表示i比j位置的糖糖多賦值加1的次數,那麼
我們要計算這個是用來做什麼的呢?是用來比較能力值進行判斷是否可以消滅的,即b[i]+csum[j-1]-csum[i-1]#include
#include
#include
using
namespace std;
typedef
long
long ll;
const
int maxn=
50001
;ll a[maxn]
;//儲存糖糖號
ll b[maxn]
;//儲存糖糖能力值
ll csum[maxn]
;//維護字首和
ll max[2]
;//維護最大值
const
int inf=
0x3f3f3f3f
;int
main()
//維護字首和
for(
int i=
1;i<=n;i++
)csum[i]
+=csum[i-1]
;//維護最大值
int cnt=0;
for(
int i=n;i>=
1;i--
) cout<}return0;
}
牛客NC14583 糖糖別胡說,我真的不是簽到題目
從前,有n隻萌萌的糖糖,他們分成了兩組一起玩遊戲。他們會排成一排,第i只糖糖會隨機得到乙個能力值bi。從第i秒的時候,第i只糖糖就可以消滅掉所有排在他前面的和他不是同一組的且能力值小於他的糖糖。為了使遊戲更加有趣,糖糖的爸爸,嬌姐,會發功m次,第i次發功的時間為ci,則在第ci秒結束後,b1,b2,...
糖糖別胡說,我真的不是簽到題目
從前,有n隻萌萌的糖糖,他們分成了兩組一起玩遊戲。他們會排成一排,第i只糖糖會隨機得到乙個能力值bi。從第i秒的時候,第i只糖糖就可以消滅掉所有排在他前面的和他不是同一組的且能力值小於他的糖糖。為了使遊戲更加有趣,糖糖的爸爸,嬌姐,會發功m次,第i次發功的時間為ci,則在第ci秒結束後,b1,b2,...
糖糖別胡說,我真的不是簽到題目
題目描述 從前,有n隻萌萌的糖糖,他們分成了兩組一起玩遊戲。他們會排成一排,第i只糖糖會隨機得到乙個能力值bi。從第i秒的時候,第i只糖糖就可以消滅掉所有排在他前面的和他不是同一組的且能力值小於他的糖糖。為了使遊戲更加有趣,糖糖的爸爸,嬌姐,會發功m次,第i次發功的時間為ci,則在第ci秒結束後,b...