1.由題可知棋盤大小為 6 行 60 列,遊戲開始後每秒任意行的最後一列都有可能出現若干zombie,玩家每秒可以在任意行的第一列放置若干堅果,堅果可瞬間殺死所在行的所有zombie,zombie每秒向左走一列,走到第一列時還沒有堅果殺死zombie則遊戲失敗。
2.題目要求用最少的堅果殺死所有zombie,每個zombie從第 60 列到第 1 列需要 59 秒,所以某行從某個zombie出生的那一秒到 59 秒之間,所有該行的zombie用乙個堅果可以解決。
3.使用結構體陣列a[i].l和a[i].t記錄zombie將要走的行以及出現在最後一列的時間,再用b[ ]記錄一下zombie是否存活 b[i] = 1則表示存活,反之死亡,最後通過迴圈遍歷,求出至少使用多少個堅果。
#include
using
namespace std;
struct zombiea[
2001];
int b[
2001];
//判斷殭屍是否去世
bool
compare
(zombie x,zombie y)
intmain()
sort
(a, a+n, compare)
;for
(int i =
0;i < n; i++
)int j = i+1;
count++
;while
(j < n)
j++;}
} cout << count << endl;
return0;
}
洛谷 貪心 P1413 堅果保齡球
把殭屍按照t為關鍵字從小到大排序,t相同時p為關鍵字 然後用a陣列來儲存每一道最早能攔截到的乙個殭屍的編號 如果道一樣,當前殭屍出現時間 之前的殭屍 60說明這乙個堅果攔不到,要增加乙個 include include include define ms i,j memset i,j,sizeof ...
C語言保齡球
保齡球計分規則簡單總結如下 每次遊戲有10輪 每一輪,投手有兩次投擲機會擊倒所有瓶子 如果在兩次投擲中,投手沒有擊倒所有瓶子,他在本輪分數計為兩次擊倒的瓶子數之和 如果在某一輪的首次就擊倒所有瓶子,這稱為乙個 strike 一投全倒 則本輪結束,本輪分數計為10 後續兩次擊倒的瓶子總數 如果在某一輪...
C 採藥題解
演算法 裸01揹包。分析 這是最基礎的揹包問題,特點是 每種物品僅有一件,可以選擇放或不放。用子問題定義狀態 即f i v 表示前i件物品 部分或全部 恰放入乙個容量為v的揹包可以獲得的最大價值。則其狀態轉移方程便是 f i v max。這個方程非常重要,基本上所有跟揹包相關的問題的方程都是由它衍生...