貪心 神槍手問題

2021-10-18 10:12:25 字數 783 閱讀 8562

/***

【題目】

薛是乙個神槍手,突然有一天遇到了一群怪物。

薛帶著 n 支槍,每支槍的攻擊力為 a[i] 。每個怪物的防禦力為 b[j] 。

在滿足 b[j]<=a[i] 的情況下,薛可用 i 槍殺死怪物 j ,他會得到 a[i]-b[j] 的獎金。

請記住:每支槍只能用來殺死乙個怪物,而且顯然每個怪物只能被殺死一次。薛想最大化他的獎金,並無要殺死所有怪物的必要。

【輸入】

第一行:t,代表有多少組測試資料

第二行: n (槍枝數量),m(怪獸數量)

第三行:n 個槍枝的攻擊力

第四行:m 個怪獸的防禦力

【輸出】

薛能得到的最大獎金

【樣例輸入】

1 2 2

2 32 2

【樣例輸出】

1【分析】

本題的貪心策略不是很明顯,每支槍只能用一次,而且要使總獎金最大,就需要在 a[i]>b[i] 的情況下,a[i] 的值盡量大而 b[i] 的值盡量小,於是可以想到一直用剩下的槍中最厲害的去乾掉剩下怪物中最弱的,以便讓每一槍都能獲得當前情況下最大的獎金。

**/#include#include#includeusing namespace std;

const int max=100001;

long long gun[max];

long long monster[max];

bool compare(long long x,long long y)

int main()

cout<

題 貪心 神似DP NKOJ3102 取數

nkoj3102 取數 時間限制 20000 ms 空間限制 165536 kb 問題描述 n個整數組成的乙個環,現在要從中取出m個數,取走乙個數字就不能取跟它相鄰的數字 相鄰的數不能同時取 要求取出的數字的總和盡可能大,問這個最大和是多少?如果無解,請輸出 error 輸入格式 第一行包含兩個正整...

硬幣問題(貪心)

有1元,5元,10元,50元,100元,500元的硬幣各a1,a5,a10,a50,a100,a500枚,現在要用這些硬幣支付money元,最少需要支付多少硬幣?假定本題至少一種支付方案。分析 要使數量最少,所以要先從面值大的開始選擇,依次往下類推,即可得到最佳答案。優先選擇面值大的。include...

簡單貪心問題

今年暑假不ac?是的。那你幹什麼呢?看世界盃呀,笨蛋!確實如此,世界盃來了,球迷的節日也來了,估計很多acmer也會拋開電腦,奔向電視了。作為球迷,一定想看盡量多的完整的比賽,當然,作為新時代的好青年,你一定還會看一些其它的節目,比如新聞聯播 永遠不要忘記關心國家大事 非常6 7 超級女生,以及王小...