P2240求解
查看原帖
P2240求解
1271290
LiHei_楼主2024/10/17 09:42

求大佬救救本蒟蒻

#include<bits/stdc++.h>
using namespace std;
struct ax
{
	int m;//质量 
	int v;//价值 
	int xjb;//性价比 
}ax[101];
int main()
{
	float z=0; 
	int n,t;//n为堆数,t为容量 
	cin>>n>>t;
	for(int i=1;i<=n;i++)
	{
		cin>>ax[i].m>>ax[i].v;
		ax[i].xjb=ax[i].v/ax[i].m;
	}
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
			if(ax[i].xjb<ax[j].xjb)
				swap(ax[i],ax[j]);
	for(int i=1;i<=n;i++)
	{
		if(t>ax[i].m)
		{
			t-=ax[i].m;
			z+=ax[i].v;
		}
		else
		{
			int ac=t;//ac为剩余容量
			t=0;
			z+=t*ax[i].xjb; 
		}
	}
	printf("%.2f",z);
	return 0;
}
2024/10/17 09:42
加载中...