日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Hdu 4415 Assassin's Creed 【贪心】.cpp

發(fā)布時(shí)間:2023/12/10 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hdu 4415 Assassin's Creed 【贪心】.cpp 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題意:

某A有一個(gè)劍 堅(jiān)韌度為m

他可以用這個(gè)劍去攻打別的隊(duì)伍

殺掉第 i 個(gè)隊(duì)伍需要消耗的堅(jiān)韌度為 Ai 并可以用得到的劍去打別的隊(duì)(Bi個(gè))

但是打完別的隊(duì)這個(gè)劍就不能用了

問(wèn)怎么用最少的堅(jiān)韌度擊敗最多的隊(duì)伍

?

給出T組樣例

每個(gè)樣例給出n m n表示有n個(gè)隊(duì)

接下來(lái)n行給出Ai Bi 表示殺掉這個(gè)隊(duì)需要消耗的堅(jiān)韌度和殺掉這個(gè)隊(duì)可以得到的劍可以殺的隊(duì)伍數(shù)

輸出可以殺掉的最多的隊(duì)和最少花費(fèi)的堅(jiān)韌度

?

思路:

可以想到的就是 殺掉一個(gè)bi != 0理論上就可以殺掉所有 bi != 0 的隊(duì)伍

×××××錯(cuò)的思路..

把bi != 0 和 bi == 0分成兩組

先用把一個(gè)bi != 0里需要用的堅(jiān)韌度最少的隊(duì)伍殺掉..然后用得到的劍殺掉別的bi != 0的隊(duì)伍

然后用這些劍去把 bi == 0 的殺掉

當(dāng)這些得到的劍用完之后就用自己的劍盡量多得把別的隊(duì)伍殺掉

×××××反思ing..

這個(gè)方法沒(méi)考慮到的問(wèn)題就是

4 2

1 1

1 1

1 0

7 0

這組數(shù)據(jù)如果用上面的思路

結(jié)果就會(huì)是 3 1?

而最優(yōu)解應(yīng)該是 4 2

問(wèn)題就出在得到的劍可能不用來(lái)殺 bi != 0而用來(lái)殺 bi == 0但是需要的堅(jiān)韌度 ai 大的隊(duì)伍

可以得到更好的答案

?

所以

√√√√√√√√√√√√√√√正確的思路

分兩種情況考慮

①. 只殺 bi == 0 的隊(duì)伍

②. 殺 bi != 0 和 bi == 0的隊(duì)伍

  這樣就要考慮有多少個(gè) bi != 0的隊(duì)伍是用自己的劍殺的

?

所以應(yīng)該分兩種情況求值

然后第二種情況就遍歷用自己的劍殺多少個(gè)bi == 0 的隊(duì)伍

求得最優(yōu)解

?

Tips:

好吧~我表示我的變量總是弄錯(cuò)

這道題主要是把 bi == 0 和 bi != 0 分組討論

?

Code:

View Code

?

題目鏈接:

轉(zhuǎn)載于:https://www.cnblogs.com/Griselda/archive/2012/09/26/2704614.html

總結(jié)

以上是生活随笔為你收集整理的Hdu 4415 Assassin's Creed 【贪心】.cpp的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。