當(dāng)前位置:首頁 > 芯聞號 > 充電吧
[導(dǎo)讀]題目鏈接:HDU 4544 題面: 湫湫系列故事——消滅兔子 Time Limit: 3000/1000 MS (Java/Others)????Memory Limit: 65535/32768

題目鏈接:HDU 4544


題面:

湫湫系列故事——消滅兔子 Time Limit: 3000/1000 MS (Java/Others)????Memory Limit: 65535/32768 K (Java/Others)
Total Submission(s): 2488????Accepted Submission(s): 820


Problem Description   湫湫減肥
  越減越肥!
  
  最近,減肥失敗的湫湫為發(fā)泄心中郁悶,在玩一個消滅免子的游戲。
  游戲規(guī)則很簡單,用箭殺死免子即可。
  箭是一種消耗品,已知有M種不同類型的箭可以選擇,并且每種箭都會對兔子造成傷害,對應(yīng)的傷害值分別為Di(1 <= i <= M),每種箭需要一定的QQ幣購買。
  假設(shè)每種箭只能使用一次,每只免子也只能被射一次,請計算要消滅地圖上的所有兔子最少需要的QQ幣。
?
Input 輸入數(shù)據(jù)有多組,每組數(shù)據(jù)有四行;
第一行有兩個整數(shù)N,M(1 <= N, M <= 100000),分別表示兔子的個數(shù)和箭的種類;
第二行有N個正整數(shù),分別表示兔子的血量Bi(1 <= i <= N);
第三行有M個正整數(shù),表示每把箭所能造成的傷害值Di(1 <= i <= M);
第四行有M個正整數(shù),表示每把箭需要花費的QQ幣Pi(1 <= i <= M)。

特別說明:
1、當(dāng)箭的傷害值大于等于兔子的血量時,就能將兔子殺死;
2、血量Bi,箭的傷害值Di,箭的價格Pi,均小于等于100000。 ?
Output 如果不能殺死所有兔子,請輸出”No”,否則,請輸出最少的QQ幣數(shù),每組輸出一行。 ?
Sample Input
3 3
1 2 3
2 3 4
1 2 3
3 4
1 2 3
1 2 3 4
1 2 3 1

?

Sample Output
6
4

?

Source 2013騰訊編程馬拉松復(fù)賽第三場(3月31日)


題意:

??? 中文題意,不再贅述。


解題:

??? 這道題是很經(jīng)典的貪心問題,和大白書上的勇者斗惡龍類似。

??? 看似要考慮的因素挺多,但抓住主線就可以。每只箭只能用一次,并且每次只能用一只箭殺兔子,且要總代價最小。有以下兩種思維方式。

?? 1.將箭的傷害從大到小排序,優(yōu)先隊列維護(hù)箭的代價,箭代價小的優(yōu)先級高。將兔子血值從大到小排序,每次將傷害值大于等于當(dāng)前兔子血量的箭加入隊列,并彈出代價最小的箭消耗,最終計算總代價即可。 ??

??? 2.將箭的代價,從小到大排序,每次用當(dāng)前箭取消滅剩余兔子中,可以被消滅的hp值最高的那只。因為,每只兔子肯定要用一只箭消滅,且當(dāng)前箭代價較低,故肯定會選用當(dāng)前這只箭,又因為當(dāng)前箭消滅可以消滅hp值最高的那只,會給后續(xù)留有更大的選擇空間,故保證是正確的。(實現(xiàn)也是采用優(yōu)先隊列,維護(hù)兔子血值,與法一類似)


代碼:

#include 
#include 
#include 
#include 
#include 
#define LL long long
using namespace std;
struct arrow
{
	int damage,cost;
	bool operator  <(const arrow &b)const
    {
		return cost>b.cost;
	}
}store[100010];
int rabbit[100010];
bool cmp(arrow a,arrow b)
{
	return a.damage q;
int main()
{
    int n,m,val,le,ri,pos,cnt;
	LL ans;
	arrow tx;
	while(~scanf("%d%d",&n,&m))
    {
       for(int i=0;i=0;i--)
	   {
          for(;pos>=0;pos--)
		  {
			  if(store[pos].damage>=rabbit[i])
				  q.push(store[pos]);
			  else
				  break;
		  }
		  if(!q.empty())
		  {
			  cnt++;
              tx=q.top();
			  q.pop();
			  ans=ans+tx.cost;
		  }
		  else
			  break;
	   }	   
	   if(cnt==n)
		   printf("%lldn",ans);
	   else
		   printf("Non");
	}
	return 0;
}


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉