为啥int只有20分
查看原帖
为啥int只有20分
979649
CHWe668楼主2025/6/26 20:57
#include<bits/stdc++.h>
using namespace std;
int n,t;
double sum=0;
struct st{
	double val,m,v;
	int m,v;/*这里设重量是m, 总价值是v. 用int,问题也就 
                  在这*/
};
st a[110];
bool cmp(st x,st y){
	return x.val>y.val;
}
int main(){
	cin >> n >> t;
	for(int i=1;i<=n;++i){
		cin >> a[i].m >> a[i].v;
		a[i].val=a[i].v/a[i].m;
	}
	sort(a+1,a+n+1,cmp);
	for(int i=1;i<=n;++i){
		if(!t) break;
		if(a[i].m<=t){
			t-=a[i].m;
			sum+=a[i].v;
			cout << sum << endl;
		}
		else{
			sum+=a[i].val*t;
			t=0;
		}
	}
	std::cout << std::fixed << std::setprecision(2) << sum;
}
2025/6/26 20:57
加载中...