社区讨论
后四个点WA求助
P2240【深基12.例1】部分背包问题参与者 2已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @locahltj
- 此快照首次捕获于
- 2023/10/30 10:37 2 年前
- 此快照最后确认于
- 2023/11/04 22:25 2 年前
CPP
#include<bits/stdc++.h>
using namespace std;
int n,t,sub[1100];
double V[1100],M[1100],VM[1100],tot;
bool cmp(int a,int b)
{
return V[a]*M[b]>V[b]*M[a];
}
int main()
{
cin>>n>>t;
for(int i=0;i<n;i++)
{
scanf("%lf%lf",&M[i],&V[i]);
sub[i]=i;
if(M[i]!=0)
VM[i]=V[i]/M[i];
else
VM[i]=101;
}
sort(sub,sub+n,cmp);
int i=0;
while(t>=M[sub[i]]&&i<n)
{
tot+=V[sub[i]];
t-=M[sub[i]];
i++;
}
if(i<=n)tot=tot+t*VM[i];
printf("%.2lf",tot);
}
回复
共 2 条回复,欢迎继续交流。
正在加载回复...