HDU 1587 Flowers【贪心】

题意:给出n种花的价钱,和总的金额m,问最多能够买到多少朵花。先排序,然后就是便宜的花在能够买的范围内能够多买就多买

#include<iostream>  
#include<cstdio>  
#include<cstring>  
#include<algorithm>  
using namespace std;
int a[10010];
int main()
{
	int n,m,i,ans,r;
	while(scanf("%d %d",&n,&m)!=EOF)
	{
		for(i=1;i<=n;i++)
		scanf("%d",&a[i]);
		sort(a+1,a+n+1);
		ans=0;
		
		for(i=1;i<=n&&m>0;i++)
		{
			r=m/a[i];
			ans+=r;
			m=m-r*a[i];	
		}
		printf("%d
",ans);		
	}
}

  后来---发现不用这样算,直接找出最小值,用总金额去买最便宜的花就好了(因为题目中说了花的数量是足够的)

原文地址:https://www.cnblogs.com/wuyuewoniu/p/4265818.html