P1230 智力大衝浪

2022-04-29 21:24:25 字數 665 閱讀 5925

智力大衝浪

翻了翻題解發現沒有並查集解法(眼瞎勿怪),於是水一發題解。(貌似跑得比某些題解快)

首先肯定是盡量做減少**大的任務,所以就按照價值從大到小排個序。

然後就有並查集的玄學操作了:

找到商品 \(i\) 的祖先 \(find(i)\)。

倘若 \(find(i)!=0\) ,加上 \(i\) 的價值,合併 \(find(i)\) 與 \(find(find(i)-1)\)。

否則跳過。

其實這裡的並查集維護的是\(i\) 能插入的最晚時間,顯然每次插入應盡量插入到最晚的時間,所以符合貪心。

最壞時間複雜度:\(o(nlogn)\)。

#include#include#include#include#include#define n 510

using namespace std;

int m,n,fa[n];

struct nodea[n];

int read()

bool cmp(node a,node b)

int find(int x)

int main()

printf("%d\n",max(0,m-ans));

return 0;

}

P1230 智力大衝浪

這題應該是貪心吧,對於每乙個遊戲,當然是扣錢扣得多的先玩,按照價值從大到小排序,對於當前的價值,從當前的t時段開始遍歷,如果說t時段已經被占用了,看看前面的t 1是否被占用,一直到1 如果都被占用了,說明這個遊戲不能進行 include include using namespace std str...

P1230 智力大衝浪

小偉報名參加 電視台的智力大衝浪節目。本次挑戰賽吸引了眾多參賽者,主持人為了表彰大家的勇氣,先獎勵每個參賽者m元。先不要太高興!因為這些錢還不一定都是你的?接下來主持人宣布了比賽規則 首先,比賽時間分為n個時段 n 500 它又給出了很多小遊戲,每個小遊戲都必須在規定期限ti前完成 1 ti n 如...

洛谷P1230智力大衝浪

小偉報名參加 電視台的智力大衝浪節目。本次挑戰賽吸引了眾多參賽者,主持人為了表彰大家的勇氣,先獎勵每個參賽者m元。先不要太高興!因為這些錢還不一定都是你的?接下來主持人宣布了比賽規則 首先,比賽時間分為n個時段 n 500 它又給出了很多小遊戲,每個小遊戲都必須在規定期限ti前完成 1 ti n 如...