分數揹包問題(貪心演算法)O(n)時間求解
演算法核心:線性時間選擇演算法+貪心
問題介紹:有一個揹包,總限重為c, 還有一系列物品,他們有各自的重量(記為)和各自的利潤,每個物品可以只被拿走一部分。設計一個在O(n)時間內的貪心演算法使得裝入揹包的物品利潤最大化,並且總物品重量不超過。
演算法數學化表示:
演算法步驟:
1.給每個物品設計一個性價比公式
2. 找出所有物品價效比的中位數median,記為m。
3. 將物品按照價效比,使用修改過的Partition進行劃分,.
4.如果R_3的總重量超過c,則直接遞迴呼叫演算法對R_3進行求解。如果R_2和R_3的總重量超過c,則遞迴呼叫演算法對R_2進行求解。否則對R_1進行遞迴求解。
演算法複雜度:
相關推薦
分數揹包問題(貪心演算法)O(n)時間求解
演算法核心:線性時間選擇演算法+貪心 問題介紹:有一個揹包,總限重為c, 還有一系列物品,他們有各自的重量(記為)和各自的利潤,每個物品可以只被拿走一部分。設計一個在O(n)時間內的貪心演算法使得裝入揹包的物品利潤最大化,並且總物品重量不超過。 演算法數學化表示:
杭電oj--1009(貪心演算法)
思路分析:先把每個倉庫的價效比資訊計算出來,然後在按價效比大小降序排列(從大到小),先把當前價效比大換掉,最後再把剩下的食物和當前 i 的價效比相乘,由此可AC. #include<iostream> #include<vector> using namesp
1070 Mooncake(貪心演算法)
1070 Mooncake (25 分) Mooncake is a Chinese bakery product traditionally eaten during the Mid-Autumn Festival. Many types of filling
PAT乙級——1020(貪心演算法)
題目:月餅 (25 分) 月餅是中國人在中秋佳節時吃的一種傳統食品,不同地區有許多不同風味的月餅。現給定所有種類月餅的庫存量、總售價、以及市場的最大需求量,請你計算可以獲得的最大收益是多少。 注意:銷售時允許取出一部分庫存。樣例給出的情形是這樣的:假如我們有 3
補提交卡(貪心演算法)
描述 小Ho給自己定了一個巨集偉的目標:連續100天每天堅持在hihoCoder上提交一個程式。100天過去了,小Ho檢視自己的提交記錄發現有N天因為貪玩忘記提交了。於是小Ho軟磨硬泡、強忍著小Hi鄙視的眼神從小Hi那裡要來M張"補提交卡"。每張"補提交卡"都可以補回一天的提交,將原本沒有提交程式的一天變
1037. Magic Coupon (25)-PAT甲級真題(貪心演算法)
1037. Magic Coupon (25)The magic shop in Mars is offering some magic coupons. Each coupon has an in
數字組合問題(貪心演算法)
設有N個正整數,現在需要你設計一個程式,使他們連線在一起成為最大的數字,例3個整數 12,456,342 很明顯是45634212為最大,4個整數 342,45,7,98顯然為98745342最大 程式要求:輸入整數N 接下來一行輸入N個數字,最後一行輸出最大的那個數字! 思路:拿到這題
HDOJ-1052 Tian Ji -- The Horse Racing(貪心演算法)
題目描述:就是田忌賽馬,但是要注意兩邊存在馬速度相同的情況。 分析: (看了各路大佬的題解Orz,自我總結一下) 先排序,這裡從快到慢排序; 1.田忌最快馬>王最快馬(貪心,毫無疑問,進行比賽後獲勝) 2.田忌最快馬<王最快馬(同樣的,既然贏不了
C語言——恐怖水母(貪心演算法)
恐怖水母 Time Limit: 3000ms, Memory Limit: 10000KB , Accepted: 3551, Total Submissions: 6402 Description 比基堡海灘有一個有n個觸手的恐怖水母,蟹老闆希望僱傭一些海綿
演算法學習系列(貪心演算法)—多處最優服務次序問題
問題描述: 設有n(1≤n≤100)個顧客同時等待一項服務。顧客i需要的服務時間為ti,1≤i≤n,共有s處提供此服務。應如何安排n個顧客的服務次序才能使平均等待時間達到最小。平均等待時間是n個顧客的等待時間(含服務時間)總和除以n。編寫一個貪心演算法,計算n
刪數問題(貪心演算法)
1.問題描述:問題描述:給定n位正整數a,去掉其中任意k<=n個數字後,剩下的數字按原次序排列組成一個新的正整數,對於給定的n位正整數a和正整數k,設計一個演算法找出剩下數字組成的新數最小的刪數方案。對於給定的正整數a,程式設計計算刪去k個數字後得到的最小數。輸入檔案示
ACM零起點2017-7-28(貪心演算法)
不同屬性不繫結,可以使用貪心法 如果繫結,則不能貪心法解決 Radar Installation Assume the coasting is an infinite straight line. Land is in one side of coasting
51NOD 1449——砝碼稱重(貪心演算法)
題目如下: 現在有好多種砝碼,他們的重量是 w0,w1,w2,... 每種各一個。問用這些砝碼能不能表示一個重量為m的東西。 樣例解釋:可以將重物和3放到一個托盤中,9和1放到另外一個托盤中。 Input 單組測試資料。 第一行有兩個整數w,m (2
4-9 汽車加油問題(貪心演算法)
問題描述:一輛汽車加滿油後可行駛n公里。旅途中有若干個加油站。設計一個有效演算法,指出應 在哪些加油站停靠加油,使沿途加油次數最少。對於給定的n(n <= 5000)和k(k <= 10
乘坐公交(貪心演算法)----去哪兒2016研發工程師程式設計題
[程式設計題] 乘坐公交 從小明家所在公交站出發有n路公交到公司,現給出每路公交的停站數(不包括起點和終點),及每次停的時間(一路車在每個站停的時間相同)和發車的間隔,先假定每輛車同時在相對
演算法:(貪心演算法)--刪數問題
刪數問題(需知道的數學定理) 給定n位正整數a,去掉其中任意k≤n 個數字後,剩下的數字按原次序排列組成一個新 的正整數。對於給定的n位正整數a和正整數 k,設計一個演算法找出剩下數字組成的新數最
活動安排(貪心演算法)
貪心演算法總是做出在當前看來是最好的選擇。但貪心演算法並不從整體最優加以考慮,它所做出的選擇只是在某種意義上的區域性最優選擇。但其最終結果能達到預期目的,或者是最優解的近似解。 活動安排是貪心演算法的
汽車加油問題(貪心演算法)
1.問題描述:一輛汽車加滿油後可行駛nkm。旅途中有若干加油站。設計一個有效演算法,指出應在哪些加油站停靠加油,使沿途加油次數最少。演算法設計:對於給定的n和k個加油站位置,計算最少加油次數。資料輸入:n:表示汽車加滿油後可行駛nkm k:旅途中有k個加油站
最優裝載(貪心演算法)
演算法設計例題:最優裝載(貪心) memory limit: 32768KB time limit: 1000MS accept: 24 submit: 68 Description 有一批集裝箱要裝上一艘載重量為C的輪船。其中集裝箱i的重量為wi。最
C++會場安排問題(貪心演算法)
一、問題描述問題描述:假設要在足夠多的會場裡安排一批活動,並希望使用盡可能少的會場。★演算法設計:對於給定的k個待安排的活動,計算使用最少會場的時間表。★資料輸入:第一行有1個正整數k,表示有k個待安排的活動。接下來的k行中,每行有兩個正整數,分別表示k個待安排的活動開始時間