1. 程式人生 > >經典貪心算法實踐

經典貪心算法實踐

int ons 問題: oid turn 硬幣問題 問題 style ace

最簡單的硬幣問題:

題目描述:

有1,5,10,50,100,500的硬幣各C1,C5,C10,C50,C100,C500枚,現在要用這些硬幣來支付A元,最少需要多少枚硬幣。

解題思路:

貪心算法,竟可能多的使用面值最大的硬幣的這一貪心的策略來切了。

 1 #include <iostream>
 2 using namespace std;
 3 const int V[6]={1,5,10,50,100,500};
 4 int C[6]={3,2,1,3,0,2};
 5 int A=620;
 6 void solve(){
 7     int ans=0;
 8     for(int i=5;i>=0;i--)
9 { 10 int t=min(A/V[i],C[i]); 11 A-=t*V[i]; 12 ans+=t; 13 } 14 cout<<ans<<endl; 15 } 16 int main() { 17 solve(); 18 return 0; 19 }

經典貪心算法實踐