codevs1052 地鼠遊戲

2021-07-30 12:56:09 字數 1401 閱讀 2217

題目描述 

description

王鋼是一名學習成績優異的學生,在平時的學習中,他總能利用一切時間認真高效地學習,他不但學習刻苦,而且善於經常總結、完善自己的學習方法,所以他總能在每次考試中得到優異的分數,這一切很大程度上是由於他是乙個追求效率的人。

地鼠遊戲是一項需要反應速度和敏捷判斷力的遊戲。遊戲開始時,會在地板上一下子冒出很多地鼠來,然後等你用榔頭去敲擊這些地鼠,每個地鼠被敲擊後,將會增加相應的遊戲分值。問題是這些地鼠不會傻傻地等你去敲擊,它總會在冒出一會時間後又鑽到地板下面去(而且再也不上來),每個地鼠冒出後停留的時間可能是不同的,而且每個地鼠被敲擊後增加的遊戲分值也可能是不同,為了勝出,遊戲參與者就必須根據每個地鼠的特性,有選擇地盡快敲擊一些地鼠,使得總的得分最大。

這個極具挑戰性的遊戲王鋼特別喜歡,最近他經常在星期天上午玩這個遊戲,慢慢地他不但敲擊速度越來越快(敲擊每個地鼠所需要的耗時是1秒),而且他還發現了遊戲的一些特徵,那就是每次遊戲重新開始後,某個地鼠冒出來後停留的時間都是固定的,而且他記錄了每個地鼠被敲擊後將會增加的分值。於是,他在每次遊戲開始後總能有次序地選擇敲擊不同的地鼠,保證每次得到最大的總分值。

輸入描述 

input description

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

輸出描述 

output description

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

樣例輸入 

sample input

5  3  6  1  4

7  9  2  1  5

樣例輸出 

sample output

思路:按時間從大到小把地鼠排個序

要知道,計算過程與打地鼠過程是相反的

計算時,先算上時間較大的;而打地鼠時,先把時間較小的打死

堆是個大根堆,優先順序是地鼠的價值,我當然喜歡打價值大的地鼠,打完之後就彈出

還要注意一點,打乙個時間為2的和另乙個時間為2的地鼠,與先打乙個時間為1的再打乙個時間為2的地鼠的耗時相同

所以我們沒有必要把乙個時間列舉完後打死乙個地鼠就清空,切莫揮金如土

#include#include

#include

using

namespace

std;

intn,ans;

struct

nodea[

10000000

];int

cmp(node k,node f)

priority_queue

q;intmain()

cout

<}

Codevs 1052 地鼠遊戲

時間限制 1 s 空間限制 128000 kb 題目等級 鑽石 diamond 王鋼是一名學習成績優異的學生,在平時的學習中,他總能利用一切時間認真高效地學習,他不但學習刻苦,而且善於經常總結 完善自己的學習方法,所以他總能在每次考試中得到優異的分數,這一切很大程度上是由於他是乙個追求效率的人。地鼠...

Codevs 1052 地鼠遊戲

時間限制 1 s 空間限制 128000 kb 題目等級 鑽石 diamond 王鋼是一名學習成績優異的學生,在平時的學習中,他總能利用一切時間認真高效地學習,他不但學習刻苦,而且善於經常總結 完善自己的學習方法,所以他總能在每次考試中得到優異的分數,這一切很大程度上是由於他是乙個追求效率的人。地鼠...

codevs 1052 地鼠遊戲

時間限制 1 s 空間限制 128000 kb 題目等級 鑽石 diamond 題目描述 description 王鋼是一名學習成績優異的學生,在平時的學習中,他總能利用一切時間認真高效地學習,他不但學習刻苦,而且善於經常總結 完善自己的學習方法,所以他總能在每次考試中得到優異的分數,這一切很大程度...