從前,有n隻萌萌的糖糖,他們分成了兩組一起玩遊戲。他們會排成一排,第i只糖糖會隨機得到乙個能力值bi。從第i秒的時候,第i只糖糖就可以消滅掉所有排在他前面的和他不是同一組的且能力值小於他的糖糖。
為了使遊戲更加有趣,糖糖的爸爸,嬌姐,會發功m次,第i次發功的時間為ci,則在第ci秒結束後,b1,b2,…,bci都會增加1.
現在,嬌姐想知道在第n秒後,會有多少只糖糖存活下來。
第一行只有乙個整數t(t<6),表示測試資料的組數。
第二行有兩個整數n,m。表示糖糖的個數以及嬌姐發功的次數。(1<=n<=50000,1<=bi<=1000000)
第三行到n+2行,每行有兩個整數ai,bi,表示第i只糖糖屬於那一組以及他的能力值。(0<=ai<=1,1<=bi<=1000000)
第n+3行到第n+m+2行,每行有乙個整數ci,表示gtw第i次發功的時間.(1<=ci<=n)
總共t行,第i行表示第i組資料中,糖糖存活的個數。
輸入:
1輸出:4 30 3
1 20 3
1 1134
直接求m次發功後每個糖糖的能力值,再從後向前遍歷,求得兩組各自的最大值(邊走變記錄最值),最大值前面的另外乙個類別且小於它的將會被消滅,即可求出被消滅的人數
#include
using
namespace std;
typedef
long
long ll;
const
int maxn=
50009
;struct nodea[maxn]
;int b[maxn]
;int
main()
for(
int i=n; i>=
1; i--
)int m0=
0, m1=
0, ans=0;
for(
int i=n; i>=
1; i--
)else
} cout<}return0;
}
糖糖別胡說,我真的不是簽到題目
從前,有n隻萌萌的糖糖,他們分成了兩組一起玩遊戲。他們會排成一排,第i只糖糖會隨機得到乙個能力值bi。從第i秒的時候,第i只糖糖就可以消滅掉所有排在他前面的和他不是同一組的且能力值小於他的糖糖。為了使遊戲更加有趣,糖糖的爸爸,嬌姐,會發功m次,第i次發功的時間為ci,則在第ci秒結束後,b1,b2,...
糖糖別胡說,我真的不是簽到題目
題目描述 從前,有n隻萌萌的糖糖,他們分成了兩組一起玩遊戲。他們會排成一排,第i只糖糖會隨機得到乙個能力值bi。從第i秒的時候,第i只糖糖就可以消滅掉所有排在他前面的和他不是同一組的且能力值小於他的糖糖。為了使遊戲更加有趣,糖糖的爸爸,嬌姐,會發功m次,第i次發功的時間為ci,則在第ci秒結束後,b...
糖糖別胡說,我真的不是簽到題目 是的,你不是
這道題最開始寫的時候是按照題意,一步一步,從前向後分析的,但是寫出來的 能過案例,測試後卻是0分,很難受,到現在也沒想明白為啥,就算超時啥的也不應該0分呀,所以貼在下面,希望有善良的大佬能幫忙瞧瞧。wrong way using namespace std include struct node n...