題目位址
一、題目內容
二、解題思路
scimoon 率領的反叛軍已經做好了準備
他的手下有 n 個戰機,每架戰機有乙個破壞力 ai
帝國有 m 個基地,每個基地有乙個防禦值 di,基地有乙個價值 vi
若乙個戰機的攻擊力嚴格大於基地的防禦值,則可以破壞該基地,得到這個基地的價值 v
帝國的後備資源很多,乙個基地可以被反覆破壞
每架戰機最多只能選擇乙個基地攻擊,當然也可以不攻擊
求能獲得的最大貢獻
輸入描述
一行兩個整數, n, m
第二行 n 個整數,表示 ai
第三行 m 個整數,表示 di
第四行 m 個整數,表示 vi
意義與題目描述中一致
輸出描述
一行乙個整數,表示最大價值
輸入用例
351
2312
3451
2345
輸出用例
3
備註:1≤n, m≤106, 0≤ai, di≤109,∣vi∣≤103
需要最終攻打價值最大,那麼思路就是選擇可以拿到價值最大的基地一直打,直到後面的飛機攻不下來再尋找價值第二大的基地。所以用貪心,由於基地可以重複銷毀,所以找出每架戰機可轟炸基地的最大價值,對基地價值和飛機戰鬥力降序排序之後貪心找一下就可以了
**如下:
#include
#include
using
namespace std;
const
int n=
1e6+15;
int a[n]
;struct attack
base[n]
;//基地的屬性
bool
sorting
(attack a,attack b)
//之前wa是因為沒考慮到防禦值大但是價值不是最大的情況,這不是貪心想要得到的結果
intmain()
sum+
=temp;
} cout
}
蒟蒻有**寫得不好的歡迎各位批評指正 項鍊 牛客小白月賽29
scimoon 意外得到了乙個項鍊,這個項鍊非常的神奇 它有 n 個珠子,一開始每個珠子有乙個編號,從左到右編號分別是 1 至 n,scimoon 進行了 m 次操作,每次操作有下面這麼幾種 1 x y 表示將編號為 x 的珠子移到編號為 y 的珠子的後面 2 x y 表示將編號為 x 的珠子移到編...
牛客小白月賽29(簽到 A E G H)
貪心,由於基地可以重複銷毀,所以找出找出每架戰機可轟炸基地的最大價值,排序之後貪心找一下即可 include include using namespace std const int n 1e6 15 struct nodeno n bool cmp node a,node b int a n i...
牛客 2020 11 14牛客小白月賽29 B
by 041 本人原文 簡單的說,對於乙個bool量x x 1 x x 0 0 x 1 1 x 0 x x 1 x x 0 x 所以,對於每一次操作,在有影響 上面的2 3 5三種情況 到的位置加入相應操作的標記最後整合就行 對於第i位 0的操作 清空之前該位置所有的操作,加上標記1 對於第i位 1...