打地鼠遊戲(貪心)

2022-06-03 21:06:10 字數 1005 閱讀 7001

照例化簡題意:

0點n個任務,每個任務有乙個權值和乙個消失時間,要在消失之前完成才會獲得價值,求最大值

solution:

蒟蒻一開始居然往dp上想。。。

集訓的東西,我卻忘了,看來還沒消化完啊。。。

最後歪歪出來乙個類似正解的東西但是我搞崩掉了....

首先,在每個點完成消失的東西,然後在空閒的點找最大的完成。

貌似是對的.....(至少hack date都過了)

然後正解:

用課件的話來講,就是:

這就很好理解了。。

先排序然後往大根堆裡面塞乙個最大值(如果不超過消失時間的話)

如果超過了當前時間,找之前的乙個不超過時間的最大值塞進大根堆裡

然後最後統計答案。

#includeusing

namespace

std;

const

int maxn=1e6+10

;inline

intread()

while(s<='

9'&&s>='0')

return x*f;

}struct

node

a[maxn];

bool

operator

int n,now=0

,ans;

priority_queue

< int , vector < int > , greater < int > >q;

intmain()

for(int i=1;i<=n;i++)

sort(a+1,a+n+1

);

for(int i=1;i<=n;i++)

else}}

printf("%d

",ans);

return0;

}

(完)

打地鼠遊戲

題目描述 輸入輸入包含3行,第一行包含乙個整數n 1 n 100000 表示有n個地鼠從地上冒出來,第二行n個用空格分隔的整數表示每個地鼠冒出後停留的時間 maxt 50000 第三行n個用空格分隔的整數表示每個地鼠被敲擊後會增加的分值v v 1000 每行中第i個數都表示第i個地鼠的資訊。輸出輸出...

打地鼠遊戲

時間限制 1 sec 記憶體限制 128 mb 題目描述 輸入輸入包含3行,第一行包含乙個整數n 1 n 100000 表示有n個地鼠從地上冒出來,第二行n個用空格分隔的整數表示每個地鼠冒出後停留的時間 maxt 50000 第三行n個用空格分隔的整數表示每個地鼠被敲擊後會增加的分值v v 1000...

地鼠遊戲 貪心

題目描寫敘述 description 王鋼是一名學習成績優異的學生,在平時的學習中,他總能利用一切時間認真高效地學習,他不但學習刻苦,並且善於常常總結 完好自己的學習方法,所以他總能在每次考試中得到優異的分數,這一切非常大程度上是因為他是乙個追求效率的人。但王鋼也是乙個喜歡玩的人,平時在學校學習他努...