從前,有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組資料中,糖糖存活的個數。
題意:有n個人,分成2個不同的隊伍,每個人都有乙個戰力值
第i秒,第i個人會消滅前面不屬於同乙個隊伍,且戰力值小於他的所有人第i秒,第i個人會消滅前面不屬於同乙個隊伍,且戰力值小於他的所有人
與此同時,有m次機會,每次前ci個人的戰力都會增加1,問你第n秒存活的人數與此同時,有m次機會,每次前ci個人的戰力都會增加1,問你第n秒存活的人數
思路:列舉/暴力
題意比較繞,如果按照時間,從前往後考慮,考慮因素過多題意比較繞,如果按照時間,從前往後考慮,考慮因素過多
從後往前考慮,第i個人只會影響前i-1個人從後往前考慮,第i個人只會影響前i−1個人
先假設所有人都不會被消滅,求出第n秒的所有人的戰力先假設所有人都不會被消滅,求出第n秒的所有人的戰力
從後往前遍歷,分別記錄兩個隊的戰力最大值,如果第i個人的戰力小於後面另乙個隊的最大戰力值,則一定會被消滅從後往前遍歷,分別記錄兩個隊的戰力最大值,如果第i個人的戰力小於後面另乙個隊的最大戰力值,則一定會被消滅
時間複雜度:
o(n)
#include
using
namespace std;
#define ll long long
const
int maxn =
500005
;struct nodea[maxn]
;ll b[maxn]
;int
main()
else
}printf
("%d\n"
,n - cnt);}
return0;
}
糖糖別胡說,我真的不是簽到題目
題目描述 從前,有n隻萌萌的糖糖,他們分成了兩組一起玩遊戲。他們會排成一排,第i只糖糖會隨機得到乙個能力值bi。從第i秒的時候,第i只糖糖就可以消滅掉所有排在他前面的和他不是同一組的且能力值小於他的糖糖。為了使遊戲更加有趣,糖糖的爸爸,嬌姐,會發功m次,第i次發功的時間為ci,則在第ci秒結束後,b...
糖糖別胡說,我真的不是簽到題目(列舉 暴力)
從前,有n隻萌萌的糖糖,他們分成了兩組一起玩遊戲。他們會排成一排,第i只糖糖會隨機得到乙個能力值bi。從第i秒的時候,第i只糖糖就可以消滅掉所有排在他前面的和他不是同一組的且能力值小於他的糖糖。為了使遊戲更加有趣,糖糖的爸爸,嬌姐,會發功m次,第i次發功的時間為ci,則在第ci秒結束後,b1,b2,...
糖糖別胡說,我真的不是簽到題目 是的,你不是
這道題最開始寫的時候是按照題意,一步一步,從前向後分析的,但是寫出來的 能過案例,測試後卻是0分,很難受,到現在也沒想明白為啥,就算超時啥的也不應該0分呀,所以貼在下面,希望有善良的大佬能幫忙瞧瞧。wrong way using namespace std include struct node n...