noip模擬賽7 上網 線性dp

2022-05-01 17:09:11 字數 1853 閱讀 4157

描述

假設有n個人要上網,卻只有1臺電腦可以上網。上網的時間是從1 szw 至 t szw ,szw是sxc,zsx,wl自創的時間單位,至於 szw怎麼換算成s,min或h,沒有人清楚。依次給出每個人在某個時間段內上網的快樂程度c(必須這個人在整個時間段內都在上網,才能獲得快樂程度c,否則,快樂程度是0),請你得到使總的快樂程度達到最大的方案。

輸入第1行2個整數 n和t,含義如題目所述;

接下來有n個這樣的結構(每兩個相鄰的結構之間有一空行,且第1個結構和第一行間有一空行):

第1行乙個整數mi,表示第i個人的時間段的個數;

接下來有mi行,每行3個整數xj,yj,c,表示第i個人在[xj,yj]內上網的快樂程度為c,

因此有xj-yj-1=1,x1=1,ymi=t,xj<=yj。

輸出僅輸出一行,為總的最大的快樂程度。

輸入樣例 1 

3 10

31 3 6

4 7 9

8 10 3

31 3 5

4 7 10

8 10 1

41 3 2

4 8 2

9 9 6

10 10 3

輸出樣例 1

25
提示【樣例說明】

在[1,3]內,安排1上網,快樂程度為6;

在[4,7]內,安排2上網,快樂程度為10;

在[8,8]內,不安排;

在[9,9]內,安排3上網,快樂程度為6;

在[10,10]內,安排3上網,快樂程度為3;

這是使總的快樂程度達到最大的方案,對應的值是25。

【資料範圍】

對於30%的資料,n<=4,所有的mi<=5,t<=20;

對於60%的資料,n<=100,所有的mi<=100,t<=2000;

對於100%的資料,n<=500,所有的mi<=500,t<=500000,所有的0以結束時間來dp即可 和揹包沒什麼兩樣

注意其中的乙個細節 因為這個wa了一次

#includeusing

namespace

std;

//input by bxd

#define rep(i,a,b) for(int i=(a);i<=(b);i++)

#define repp(i,a,b) for(int i=(a);i>=(b);i--)

#define ri(n) scanf("%d",&(n))

#define rii(n,m) scanf("%d%d",&n,&m)

#define riii(n,m,k) scanf("%d%d%d",&n,&m,&k)

#define rs(s) scanf("%s",s);

#define ll long long

#define pb push_back

#define fi first

#define rep(i,n) for(int i=0;i

#define clr(a,v) memset(a,v,sizeof a)

/////////////////////////////////

//#define inf 0x3f3f3f3f

#define n 1000+50

struct

node

s[500000+5

];vector

tim[500000+5

];long

long dp[500000+5

];int

main()

}rep(i,

1,t)

}cout

<

return0;

}

view code

NOIP模擬賽 拆網線

企鵝國的網咖們之間由網線互相連線,形成一棵樹的結構。現在由於冬天到了,供暖部門缺少燃料,於是他們決定去拆一些網線來做燃料。但是現在有 k 只企鵝要上網和別人聯機遊戲,所以他們需要把這 k 只企鵝安排到不同的機房 兩隻企鵝在同乙個機房會吵架 然後拆掉一些網線,但是需要保證每只企鵝至少還能通過留下來的網...

NOIP提高組模擬賽7

帶取模的運算,除以乙個數一定要乘逆元!不同位置的值對最終答案的貢獻是互不影響的,分開考慮每個值的貢獻 考慮對於位於 x,y 的值對 n,m 的貢獻,無論從哪個路徑走過去,一定是原數 a b 而對答案貢獻多少次即為 x,y n,m 不同的路徑數,這個顯然是個組合數,用l表示需要走幾步,r表示需要向右 ...

noip模擬賽7 足球比賽 樹

描述 在2009的中國城市足球比賽中,在2 n支隊中,有一些隊在開賽前宣布了退出比賽。比賽採取的是淘汰賽。比如有4支隊伍參加,那麼1隊和2隊比賽,3隊和4隊賽,然後1隊和2隊的勝者與3隊和4隊的勝者爭奪冠軍。但是由於某些隊伍退出,那麼如果某個原本存在的比賽只有乙個支隊,那麼這一支隊自動晉級,如果沒有...