貪心演算法(硬幣問題)
貪心演算法
貪心演算法區域性最優就是整體最優
#include <cmath> #include <cstring> using namespace std; int money[6]={1,5,10,50,100,500};//表示1、5、10、50、100、500 int num[6];//分別代表對應的硬幣個數 int main() { int a,ans;//a代表金額,ans代表需要的硬幣個數 while(cin>>a) { ans=0; for(int i=0;i<6;i++) cin>>num[i]; for(int i=5;i>=0;i--) { int t=min(a/money[i],num[i]); a-=t*money[i];//不斷更新金額的大小 ans+=t;//硬幣的個數 } cout<<ans<<endl; } return 0; }
相關推薦
貪心演算法(硬幣問題)
貪心演算法 貪心演算法區域性最優就是整體最優 #include <cmath> #include <cstring> using namespace std; int money[6]={1,5,10,50,100,500};//表示1、
16 貪心演算法(筆記)
釋義 在設計演算法求解最優化問題的過程中,每一步都做出當時看起來最佳的選擇,這樣的演算法稱作貪心演算法,每一步做出的選擇稱作貪心選擇。 設計步驟 將最優化問題轉化為這樣的形式:對其做出一次選擇後,只剩下一個待求解的子問題。 證明做出貪心選擇後,原問題總是存在最優解,
貪心演算法(1)—— 活動安排問題 以及 電視節目問題 的區別
一、活動安排問題 #include <iostream> #include <algorithm> using namespace std; /* 題目型別:活動安排問題 特點:所有活動都需要進行,要求輸出所需的會場數 演算法:貪心演算法 注意
貪心演算法(上)
一、問題描述 有15個公司和30種產品。 每個公司生產不同種類任意多種產品,每個公司生成產品都會產生一定的費用。 例如: 需要生產6種產品,分別為 1 5 9 10 11 12 6 1 5 9 10 11 12 共有7個公司生產 7 第一家:需要15萬,生成5種產品,1 3 5
貪心演算法(2)
King’s Cake HDU 5640 http://acm.hdu.edu.cn/showproblem.php?pid=5640 It is the king’s birthday before the military parade . The ministers
貪心演算法(二)
1.刪除數字求最小值 給定一個n位正整數a, 去掉其中k個數字後按原左右次序將組成一個新的正整數。對給定的a, k尋找一種方案,使得剩下的數字組成的新數最小。 提示:應用貪心演算法設計求解 操作物件為n位正整數,有可能超過整數的範圍,儲存在陣列a中,陣列中每一個數組元素
演算法學習日記————貪心演算法(一)
“人心不足蛇吞象” 一個貪心演算法總是做出當前最好的選擇,也就是說,它期望通過區域性最優選擇從而得到全域性最優選擇 在貪心演算法中需要注意的問題: 沒有後悔藥。一旦做出選擇,不可以反悔。 有可能得到的不是最優解,而是最優解的近似解。 選擇什麼樣的貪心策略決定演算
【貪心演算法(三)】並查集和克魯斯卡爾演算法
1介紹 本節將記錄兩個問題,(1)並查集;(2)克魯斯卡爾演算法;。 這是貪心演算法最後一節,可能不是所有的問題都與貪心演算法有關,但是都是我認為有趣且比較重要的東西,有必要統一學習記錄一下。可能我舉例不太文雅,但絕對沒有歧視和嘲諷任何群體的意思,只是為了讓人印象深刻一些。
貪心演算法(基於C++)
文章基於此篇微信推送https://mp.weixin.qq.com/s/3h9iqU4rdH3EIy5m6AzXsg 簡介 動態規劃是一種由問題的最小子狀態(邊界)不斷推出更大的狀態,最後解決整個問題的解題思想。 基礎概念 最優子結構:狀態可被分解為的子狀態
基礎演算法——貪心演算法(聖誕老人的禮物)
題目是這樣的: 聖誕節來臨了,中聖誕老人準備分發糖果現在有多箱不同的糖果, 每箱糖果有自己的價值和重量,每箱糖果都可以拆分成任意散裝組合帶走。聖誕老人的馴鹿雪橇最多隻能裝下重量W的糖果,請問聖誕老人最多能帶走多大價值的糖果。 4表示四種糖果,下面跟著四行資料,第一個表示價值,第二個
貪心演算法(最優裝載)
貪心演算法 貪心本質:一個貪心演算法總是作出當前最好的選擇,也就是說,它期望通過區域性最優選擇從而得到全域性最優的解決方案。 貪心演算法祕籍: (1)貪心策略 首先確定貪心策略,選擇當前看上去最好的一個方案。 (2)區域性最優解 根據貪心策略,一步一步地得到區域性最優解。 (3)全域
【演算法】----貪心演算法(揹包問題)
【前言:】 上一篇部落格從概念上說了一下貪心演算法,這次我們通過一個例項,來進一步幫助大家理解貪心演算法。 一、【經典例項:】(揹包問題) 給定n個物品和一個容量為C的揹包,物品i的重量是Wi,其價值為Vi,揹包問題是如何選擇入揹包的物品
三、貪心演算法(小象)
455.分發餅乾 思考:首先要知道,如果一個大餅乾給了一個小胃口的孩子,那麼下面一個大胃王就沒得吃了。所以第一步要把兩個陣列排序,然後,如果一個餅乾不能滿足最小胃口的那個孩子,那麼剩下的孩子也不用餵了,都吃不飽;直接拿下一塊餅乾。如果一個孩子可以用更小的餅乾滿足,就不要把更大的餅乾給他,因
每日一道貪心演算法(揹包+小船過河問題)
貪心演算法(百度百科) 貪心演算法(又稱貪婪演算法)是指,在對問題求解時,總是做出在當前看來是最好的選擇。也就是說,不從整體最優上加以考慮,他所做出的是在某種意義上的區域性最優解。 貪心演算法不是對所有問題都能得到整體最優解,關鍵是貪心策略的選擇,選擇的貪心策略必須具備無後效性,即某個狀態以前的
回溯演算法 和 貪心演算法(全排列)
一:簡介 (1)回溯法 又稱試探法 回溯法的基本做法是深度優先搜尋,是一種組織得井井有條的、能避免不必要重複搜尋的窮舉式搜尋演算法;基本思想是:從一條路往前走,能進則進,不能進則退回來,換一條路再試。 適用場景:當遇到某一類問題時,它的問題可以分解,但是又不能得出明確的動態
9.29-貪心演算法(//活動安排//0-1揹包//裝載問題)
1.活動安排 描述:Jack是一名nwpu的大一新生,對學校舉辦的各種活動都十分的好奇,想盡可能多的參加這些活動。Npwu每天共有N項活動,其開始結束時間分別為B[i],E[i],(i = 1,2,……N) 請問Jack一天最多能參加幾項活動。當然,Jack在同一時間內只能
最小生成樹(Kruskal 演算法和 Prim 演算法)——貪心演算法(C語言)
本內容將介紹最小生成樹(MST:Minimum Cost Spanning Tree)的兩種解法,分別為 Kruskal 演算法(克魯斯卡爾演算法)和 Prim 演算法(普里姆演算法),並且它們都屬於貪心演算法。 問題描述: 產生最小生成樹(MS
UVA 1193 貪心演算法(區間不交叉)
http://acm.hust.edu.cn/vjudge/problem/32336/origin 題目大意: 海上有很多島p 現在要在x軸上放置雷達,給出雷達範圍和島的位置,問至少 多少個雷達才可以偵查到全部島。 貪心的想法是把雷達偵查範圍儘量的
2021 貪心演算法 (最優轉載問題)水題
發工資咯:) Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm
藍橋杯程式設計題——完美的代價——貪心演算法(存在一定問題,希望各路大神糾正一下)
問題描述 迴文串,是一種特殊的字串,它從左往右讀和從右往左讀是一樣的。小龍龍認為迴文串才是完美的。現在給你一個串,它不一定是迴文的,請你計算最少的交換次數使得該串變成一個完美的迴文串。 交換的定義是:交換兩個相鄰的字元 例如mamad 第一次交換 ad : mamda