求洛谷 P2240
  • 板块学术版
  • 楼主Kevinhbr
  • 当前回复0
  • 已保存回复0
  • 发布时间2025/1/24 10:07
  • 上次更新2025/1/24 13:56:52
查看原帖
求洛谷 P2240
1178354
Kevinhbr楼主2025/1/24 10:07

这个代码我没能发现问题,于是来这求助,望大佬看到后能够指导一下: 题目传送门:部分背包问题

代码是这样的:

#include<iostream>
#include<algorithm>
#include<cmath>
#include<iomanip>
using namespace std;
int n;
double t,b[105];
struct node{
	double w;
	double m;
	double dw;
}a[105];
bool cmp(node x,node y){
	return x.dw<y.dw;
}
int main(){
	cin>>n>>t;
	for(int i=1;i<=n;i++){
		cin>>a[i].w>>a[i].m;
		a[i].dw=a[i].m/a[i].w;
	}
	sort(a+1,a+n+1,cmp);
	int i=n;
	double cnt=0;
	while(t>=0){
		t-=a[i].w;
		cnt+=a[i].m;
		i--;
	}
	i++;
	cnt-=abs(0-t)*a[i].dw;
	cout<<fixed<<setprecision(2)<<cnt;
	return 0;
}

好像没错,但只得80分!错一个样例点

2025/1/24 10:07
加载中...