description
有n個頭的惡龍,你希望僱一些騎士把它殺死(即砍掉所有頭)。村里有m個騎士可以僱傭,乙個能力值為x的騎士可以砍掉惡龍
乙個直徑不超過x的頭,且需要支付x個金幣。如何僱傭騎士才能砍掉惡龍的所有頭,且需要支付的金幣最少?注意,乙個騎士只
能砍乙個頭(且不能被僱傭兩次)
輸入格式
多組資料,每組資料的第一行為正整數n和m(1<=n,m<=200000);以下n行每行為乙個整數,即惡龍每個頭的直徑;以下m行每行為乙個整數,即每個騎士的能力。輸入結束標誌n=m=0;
輸出格式
輸出格式:每組資料,輸出最少花費,無解輸出"loowater is doomed!"
輸入樣例
2 3547
842 15510
0 0輸出樣例
11loowater is doomed!
解題思路:
龍頭的直徑按從小到大排序,騎士的能力按從小到大排序,當騎士的能力大於等於當前龍頭的直徑,則總花費加上騎士的能力值,遍歷下一條龍和騎士;否則,遍歷下一騎士。直到所有的龍都被砍完,或者所有的騎士都遍歷完。
**如下:
#include
#include
using
namespace std;
int a[
200005]=
;int b[
200005]=
;int
main()
}if(jprintf
("loowater is doomed!\n");
else
printf
("%d\n"
,count);}
return0;
}
18118 勇者鬥惡龍
時間限制 800ms 記憶體限制 65535k 提交次數 0 通過次數 0 題型 程式設計題 語言 g gcc vc 有n個頭的惡龍,你希望僱一些騎士把它殺死 即砍掉所有頭 村里有 個騎士可以僱傭,乙個能力值為x的騎士可以砍掉惡龍 乙個直徑不超過x的頭,且需要支付x個金幣。如何僱傭騎士才能砍掉惡龍的...
18118 勇者鬥惡龍
時間限制 800ms 長度限制 10kb 提交次數 0 通過次數 0 題型 程式設計題 語言 g gcc vc 有n個頭的惡龍,你希望僱一些騎士把它殺死 即砍掉所有頭 村里有 個騎士可以僱傭,乙個能力值為x的騎士可以砍掉惡龍 乙個直徑不超過x的頭,且需要支付x個金幣。如何僱傭騎士才能砍掉惡龍的所有頭...
勇者鬥惡龍
一 勇者鬥惡龍 你的王國有一條n個頭的惡龍,你希望顧一些騎士把他殺死 即砍掉所有的頭 村中有m個騎士可以僱傭,乙個能力值位x的騎士可以砍掉惡龍乙個直徑不超過x的頭,且需要支付x個金幣。如何僱傭騎士才能砍掉惡龍的所有的頭,且需要支付的金幣最少?注意,乙個騎士只能砍乙個頭 且不能被僱傭兩次 輸入格式 輸...