小黄题疑问求解
查看原帖
小黄题疑问求解
1439183
Burning_Red楼主2025/7/25 17:34

我贪心过了,但这题貌似是dp?

代码思路很简单

求证明证伪或Hack

#include <bits/stdc++.h>
using namespace std;

typedef long long ll;

const ll N = 1e5 + 10;

struct node{
	ll k, c;
} A[N];

ll sum1, sum2;

bool cmp(node x, node y) {
	return 1.0 * (sum1 + x.k) / (sum2 + x.c) > 1.0 * (sum1 + y.k) / (sum2 + y.c);
} 

int main() {
	ll n, m;
	cin >> n >> m;
	for (int i = 1; i <= n; i++) {
		cin >> A[i].k;
	}
	for (int i = 1; i <= n; i++) {
		cin >> A[i].c;
	}
	sum1 = 0;
	sum2 = 0;
	sort(A + 1, A + 1 + n, cmp);
	for (int i = 1; i <= m; i++) {
		sum1 += A[i].k;
		sum2 += A[i].c;
		sort(A + i + 1, A + 1 + n, cmp);
	}
	printf("%.3lf", 1.0 * sum1 / sum2);
	return 0;
}
2025/7/25 17:34
加载中...