第13课:贪心

潘CSP200班

2024-05-18 9:55:54
2024-06-28 16:21:54

信息与公告

1、贪心法:每次操作都采取当前最优策略的算法。

2、正确使用贪心法:如果每次做出当前看来最好的选择,就能获得最好的结果,通常可以使用贪心法。也就是局部最优会导致全局最优。

3、例题
【最少硬币问题】某人带着3种面值的硬币去购物,有1元、2元、5元的,硬币数量不限;他需要刚好支付m元,问怎么支付,才能使硬币数量最少?

int m;
cin >> m;
int ans = 0;
while(m>=5)   //能用最大面值则用最大面值硬币
{
	ans++;
	m=m-5;
}
while(m>=2)   //能用第二大面值则用第二大面值硬币
{
	ans++;
	m=m-2;
}
while(m>=1)    //最后才用面值最小的1元硬币
{
	ans++;
	m=m-1;
}
cout << ans;
状态 题目 统计
最少硬币数 7 / 7 / 7
陶陶摘苹果(升级版) 5 / 5 / 5
排队接水 4 / 4 / 4