SCAU 18118 勇者鬥惡龍

2021-10-06 21:27:13 字數 914 閱讀 5135

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個金幣。如何僱傭騎士才能砍掉惡龍的所有的頭,且需要支付的金幣最少?注意,乙個騎士只能砍乙個頭 且不能被僱傭兩次 輸入格式 輸...