地鼠遊戲 貪心

2021-09-06 23:10:39 字數 1442 閱讀 5936

題目描寫敘述 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

資料範圍及提示 data size & hint

剛看到題,一眼感覺是動歸,寫了一會僅僅過了6組資料,除錯半天也不行,後來看了題解才發現是貪心

先寫個結構體儲存地鼠的資訊,然後我們依照分值從大到小排序

然後從大到小開始遍歷,在加一層迴圈從能打到這個地鼠的最晚時間往前推

假設時間沒被標記, 那麼分鐘加到終於分數,再標記這個時間

#include #include #include using namespace std;

struct mouse

a[105];

bool cmp(mouse a,mouse b)

int main()

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

return 0;

}

codevs地鼠遊戲(貪心)

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

打地鼠遊戲(貪心)

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

codevs貪心 地鼠遊戲

王鋼是一名學習成績優異的學生,在平時的學習中,他總能利用一切時間認真高效地學習,他不但學習刻苦,而且善於經常總結 完善自己的學習方法,所以他總能在每次考試中得到優異的分數,這一切很大程度上是由於他是乙個追求效率的人。地鼠遊戲是一項需要反應速度和敏捷判斷力的遊戲。遊戲開始時,會在地板上一下子冒出很多地...