码迷,mamicode.com
首页 > 其他好文 > 详细

HDU ACM 2111 Saving HDU->贪心

时间:2015-04-30 21:54:50      阅读:249      评论:0      收藏:0      [点我收藏+]

标签:c   c++   acm   贪心   算法   

分析:简单贪心题,注意这里给出的已经是单价了,而不是物品的总价值,直接用来排序即可。

#include<iostream>
#include<algorithm>
using namespace std;

struct A
{
	int p,m;
}a[105];

bool cmp(A a1,A a2)
{
	return a1.p<a2.p;
}

int main()
{
	int v,n,i;
	int sum;

	while(cin>>v && v)
	{
		cin>>n;
		for(i=0;i<n;i++)
			cin>>a[i].p>>a[i].m;

		sort(a,a+n,cmp);
		sum=0;
		for(i=n-1;i>=0;i--)
		{
			if(v>=a[i].m)
			{
				sum+=a[i].p*a[i].m;
				v-=a[i].m;
			}
			else
			{
				sum+=v*a[i].p;
				v-=v;
				break;
			}
		}
		cout<<sum<<endl;
	}
	return 0;
}


HDU ACM 2111 Saving HDU->贪心

标签:c   c++   acm   贪心   算法   

原文地址:http://blog.csdn.net/a809146548/article/details/45399071

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!