60求调
查看原帖
60求调
739320
fly_code楼主2024/10/22 17:45

https://www.luogu.com.cn/record/184012556

#include<bits/stdc++.h>
using namespace std;
struct coin{
	int m;
	int v;
	double d;
	
}coins[110]={0};
bool cmp(coin x,coin y)
{
	return x.d>y.d;
	
}

int main()
{
	int N,T,leng=0,weight=0;
	double ans=0.0;
	cin>>N>>T;
	for(int i=1;i<=N;i++)
	{
		cin>>coins[i].m>>coins[i].v;
		coins[i].d=1.0*coins[i].v/coins[i].m*1.0;
		leng++;
	}
	
	
	sort(coins+1,coins+leng+1,cmp);
	
	for(int i=1;i<=leng;i++)
	{
		if(T==weight)
		{
			
			break;
			
		}
		if(coins[i].m+weight<=T)
		{
			ans+=coins[i].v;
			weight+=coins[i].m;
			
		}
		if(coins[i].m+weight>T)
		{
			ans+=coins[i].d*1.0*(T-weight);
			
			weight=T;
			
		}
			
	}
	printf("%.2lf",ans);
	return 0;
}

求调,不胜感激

2024/10/22 17:45
加载中...