求助,感觉用不到二分啊,用的贪心,但是只得了60分,请大佬们看看是什么原因啊。
查看原帖
求助,感觉用不到二分啊,用的贪心,但是只得了60分,请大佬们看看是什么原因啊。
293607
Pureqyu楼主2020/9/15 10:42
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
const int N = 205;
struct Node{
    int taste, times;
    float ratio;
}node[N];
bool cmp(Node a, Node b){
    return a.ratio >= b.ratio;
}
int main(){
    int n, m;
    cin >> n >> m;
    for(int i = 1; i <= n; i ++) cin >> node[i].taste;
    for(int i = 1; i <= n; i ++) cin >> node[i].times;
    for(int i = 1; i <= n; i ++) node[i].ratio = node[i].taste * 1.0 / node[i].times;
    sort(node + 1, node + 1 + n, cmp);
    int sum1 = 0, sum2 = 0;
    for(int i = 1; i <= m; i ++){
        sum1 += node[i].taste;
        sum2 += node[i].times;
    }
    printf("%.3f\n", sum1 * 1.0 / sum2);
    return 0;
}
2020/9/15 10:42
加载中...