社区讨论
好几次0分了,我要疯了!!!!dalao救救可怜人吧
P2240【深基12.例1】部分背包问题参与者 3已保存回复 6
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 6 条
- 当前快照
- 1 份
- 快照标识符
- @lo25yg5q
- 此快照首次捕获于
- 2023/10/23 08:32 2 年前
- 此快照最后确认于
- 2023/11/03 08:48 2 年前
样例是对的,但是全WA!!
CPP
// c++从入门到入坟.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
#include<iostream>
#include <stdio.h>
#include<algorithm>
#include<math.h>
using namespace std;
struct node{
double danjia;
double milk;
double zhon;
} aa[2000];
struct node1{
double danjia1;
}a[2000];
bool cmp(node x, node y){
return x.danjia > y.danjia;
}
bool cmp1(node1 x, node1 y){
return x.danjia1 > y.danjia1;
}
int main(){
double ans = 0;
int t, m;
cin >> m >> t;
for(int i = 0; i < m; i++){
cin >> aa[i].danjia >> aa[i].milk;
a[i].danjia1 = aa[i].milk / aa[i].danjia;
}
sort(aa, aa + m, cmp);
sort(a, a + m, cmp1);
int o = 0;
while(m){
if(t > 0){
if(t >= aa[o].danjia){
ans += aa[o].milk;
t -= aa[o].danjia;
}
}
if(t < aa[o].danjia){
ans += a[o].danjia1;
t--;
}
if(t <= 0){
break;
}
}
printf("%.2lf", ans);
return 0;
}
回复
共 6 条回复,欢迎继续交流。
正在加载回复...