求助!
查看原帖
求助!
1175242
Zxx20120715楼主2024/5/9 21:26

这位蒟蒻没学会贪心,所以没做对,来请各位大佬们帮忙。

20 分代码:

#include<bits/stdc++.h>
using namespace std;
int v[1500],m[1500];
int n,t;
int main(){
	cin>>n>>t;
	for(int i=1;i<=n;i++){
		cin>>m[i]>>v[i];
	}
	for(int i=1;i<n;i++){
		for(int j=i+1;j<=n;j++){
			if((v[i]*1.0)/(m[i]*1.0)<(v[j]*1.0)/(m[j]*1.0)){
				swap(v[i],v[j]);
				swap(m[i],m[j]);
			}
		}
	}
	double ans=0;
	for(int i=1;i<=n;i++){
		if(t-=m[i]>=0){
			t-=m[i];
			ans+=v[i];
		}
		else {
			if(t>0&&t<m[i]){
				ans+=(v[i]*1.0)/(m[i]*1.0)*(t*1.0);
			}
			printf("%.2f",ans);
			return 0;
		}	
	}
	printf("%.2f",ans);
	return 0;
}
2024/5/9 21:26
加载中...