打地鼠遊戲

2021-08-21 17:52:09 字數 760 閱讀 4535

題目描述

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

輸出輸出只有一行乙個整數,表示所能獲得的最大遊戲總分值。

樣例輸入

5

5 3 6 1 4

7 9 2 1 5

樣例輸出

24
首先理解題意:並不是只能到t時刻才能夠打地鼠,在0--t時間段內都可以打他。

例如乙個地鼠的露頭時間為5,在0-5秒內都可以打。

先通過時間的先後順序進行排序,然後採用優先佇列,將在時間段內的地鼠打了,對於不在該段時間內的,採用

優先佇列進行判斷,取最大代換即可。

#include#include#include#include#include#includeusing namespace std;

int n,sum=0,ans=0;

priority_queue, greater> q;

struct nodea[100005];

bool cmp(node q,node p)

}else

}printf("%d\n",ans);

return 0;

}

打地鼠遊戲

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

5502 打地鼠遊戲

題目 思路 先按小鼠出現的時間從小到大排序,用nt記錄消耗的時間,當小鼠停留的時間大於nt時,將價值加到總價值上去,否則,用此小鼠的價值和已經加上去的小鼠的最小價值比較,判斷是否加上它。用優先佇列,因為優先佇列預設從大到小排序,所以要將小鼠價值的負值加到佇列中。include include inc...

打地鼠遊戲(貪心)

照例化簡題意 0點n個任務,每個任務有乙個權值和乙個消失時間,要在消失之前完成才會獲得價值,求最大值 solution 蒟蒻一開始居然往dp上想。集訓的東西,我卻忘了,看來還沒消化完啊。最後歪歪出來乙個類似正解的東西但是我搞崩掉了.首先,在每個點完成消失的東西,然後在空閒的點找最大的完成。貌似是對的...