贪心算法之阿里巴巴与四十大盗(背包问题)
生活随笔
收集整理的這篇文章主要介紹了
贪心算法之阿里巴巴与四十大盗(背包问题)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、問題
有一天,阿里巴巴趕著一頭毛驢上山砍柴。砍好柴準備下山時,遠處突然出現一股煙塵,彌漫著直向上空飛揚,朝他這兒卷過來,而且越來越近。靠近以后,他才看清原來是一支馬隊,他們共有四十人,一個個年輕力壯、行動敏捷。一個首領模樣的人背負沉重的鞍袋,從叢林中一直來到那個大石頭跟前,喃喃地說道:“芝麻,開門吧!”隨著那個頭目的喊聲,大石頭前突然出現一道寬闊的門路,于是強盜們魚貫而入。阿里巴巴待在樹上觀察他們,直到他們走得無影無蹤之后,才從樹上下來。他大聲喊道:他小心翼翼地走了進去,一下子驚呆了,洞中堆滿了財物,還有多得無法計數的金銀珠寶,有的散堆在地區上,有的盛在皮袋中。突然看見這么多的金銀財富,“芝麻,開門吧!”他的喊聲剛落,洞門立刻打開了。阿里巴巴深信這肯定是一個強盜們數代經營、掠奪所積累起來的寶窟。為了讓鄉親們開開眼界,見識一下這些寶物,他想一種寶物只拿一個,如果太重就用錘子鑿開,但毛驢的運載能力是有限的,怎么才能用驢子運走最大價值的財寶分給窮人呢?阿里巴巴與四十大盜阿里巴巴陷入沉思中......
2、分析
這里的寶物價值都不一樣,然后每個寶物的可以分割的,我們依然可以用貪心算法的思想,我們先找到貪心策略
貪心策略:找到寶物的性價比,然后每次取最大的性價比的寶物放到毛驢身上,然后最后一次如果放不下了就把
剩余的重量放性價比小的分割后的寶物
3、代碼實現
普通實現:
#include <iostream> #include <algorithm>using namespace std;//定義數組的個數 const int M =
總結
以上是生活随笔為你收集整理的贪心算法之阿里巴巴与四十大盗(背包问题)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android之数据转化崩溃问题
- 下一篇: 贪心算法之高级钟点秘书会议安排问题