社区讨论

好几次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 条回复,欢迎继续交流。

正在加载回复...