社区讨论

求助

P2240【深基12.例1】部分背包问题参与者 3已保存回复 4

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
4 条
当前快照
1 份
快照标识符
@lod70ogu
此快照首次捕获于
2023/10/31 01:47
2 年前
此快照最后确认于
2023/11/05 12:15
2 年前
查看原帖
编译错误
CPP
#include<bits/stdc++.h>
using namespace std;
struct xx
{
	double a,b,c;
} d[105];
bool cmp(xx &aa,xx &bb)
{
	return aa.c>bb.c;
}
int main()
{
	double x,n,ans=0,s=0;
	cin>>x>>n;
	for(int i=1;i<=x;i++) 
{
	cin>>d[i].a>>d[i].b;
	d[i].c=d[i].b/d[i].a;
}
	sort(d+1,d+x+1,cmp);
	for(int i=1;i<=x;i++)
{
	if(d[i].a+s<n)
{
	ans+=d[i].b;
	s+=d[i].a;
}
    if(d[i].a+s>=n)
{
	ans+=(n-s)*d[i].c;
	break;
}
}
    cout<<fixed<<setprecision(2)<<ans;
    return 0;
}

回复

4 条回复,欢迎继续交流。

正在加载回复...