C/C++教程

CodeForces 600B Queries about less or equal elements

本文主要是介绍CodeForces 600B Queries about less or equal elements,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

题目链接:CodeForces 600B Queries about less or equal elements

题目大意:
给定两个整数数组\(a\)和\(b\)。对于第二个数组的每个元素\(b_j\),您应该找到数组\(a\)中小于或等于值\(b_j\)的元素数。

题解:
排序后二分查找,用\(upper\_bound\)会方便很多。

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

int main() {
    int n, m, a[200010], b[200010];
    cin >> n >> m;
    for (int i = 1; i <= n; ++i) {
        cin >> a[i];
    }
    sort(a + 1, a + 1 + n);
    for (int i = 1; i <= m; ++i) {
        cin >> b[i];
    }
    for (int i = 1; i <= m; ++i) {
        int pos = upper_bound(a + 1, a + 1 + n, b[i]) - a - 1;
        cout << pos << ' ';
    }
    return 0;
}
这篇关于CodeForces 600B Queries about less or equal elements的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!