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\n",ans);		

	}

}

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

你可能感兴趣的:(HDU)