51Nod 1432 独木舟

题目链接:51Nod 1432 独木舟

题目大意:
51Nod 1432 独木舟

题解:
按体重从小到大排序,两个指针分别指向头尾,从最重的开始分配船只,他可以和当前最轻的坐船,如果重量超了就自己坐船。

#include <algorithm>
#include <iostream>
using namespace std;

long long w[10010], n, m;

int main() {
    ios::sync_with_stdio(false);
    cin >> n >> m;
    for (int i = 1; i <= n; ++i) {
        cin >> w[i];
    }
    sort(w + 1, w + 1 + n);
    int cnt = 0;
    int p = 1, q = n;
    while (p <= q) {
        if (w[p] + w[q] <= m) {
            cnt++;
            p++, q--;
        } else {
            cnt++;
            q--;
        }
    }
    cout << cnt << endl;
    return 0;
}
上一篇:#直径,线段树#51nod 1766 树上的最远点对


下一篇:51Nod-1597 有限背包计数问题 根号分治