文章

13

粉丝

55

获赞

2

访问

8.5k

头像
组队刷题 题解:
P1307
发布于2024年6月13日 20:23
阅读数 463

#include<bits/stdc++.h>
using namespace std;
struct node{
	double a;
	double b;
	double avg;
}n[1001];
bool cmp(node a,node b)
{
	return a.avg < b.avg;
}
int main()
{
	double m;
	int d;
	while(cin>>m>>d){
		if(m==-1) break;
		for(int i = 0;i<d;i++){
			cin>>n[i].a>>n[i].b;
			n[i].avg =  n[i].b / n[i].a;
		}
		sort(n,n+d,cmp);
		double sum = 0;
		for(int i = 0;i<d;i++)
		{
			if(m >= n[i].b ){
				m -= n[i].b;
				sum += n[i].a;
			}else{
				sum +=  m / n[i].avg;
				break;
			}
		}
		printf("%.3lf\n",sum);
	}
	return 0;
}

创建结构体,注意读题,以为是一组输入还以为是精度的问题,卡了好久。 这道题典型的贪心。

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发