mxqz
查看原帖
mxqz
384214
esquigybcu楼主2021/10/24 17:36
// Let QwQ bless me. I love QwQ forever!

#include <stdio.h>
#include <string.h>
#include <limits.h>
#include <algorithm>

const int N = 1e5 + 5;
struct plane
{
    int a, b;
}
u[N], v[N];

inline bool operator<(const plane& u, const plane& v)
{
    return u.a < v.a;
}

int n, m1, m2, ans1[N], ans2[N];

inline void calc(plane *u, int m, int *ans)
{
    std::sort(u, u + m);
    int cur[N]; memset(cur, 0, sizeof cur);
    for (int i = 1; i <= m; i++)
    {
        for (int j = 1; j <= n; j++)
            if (u[i].a > u[cur[j]].b)
            {
                cur[j] = i;
                ans[j]++;
                break;
            }
    }
    for (int i = 1; i <= n; i++)
        ans[i] += ans[i - 1];
    return;
}

int main()
{
    scanf("%d %d %d", &n, &m1, &m2);
    for (int i = 1; i <= m1; i++)
        scanf("%d %d", &u[i].a, &u[i].b);
    for (int i = 1; i <= m2; i++)
        scanf("%d %d", &v[i].a, &v[i].b);
    calc(u, m1, ans1);
    calc(v, m2, ans2);

    int res = 0;
    for (int i = 0; i <= n; i++)
        res = std::max(res, ans1[i] + ans2[n - i]);
    printf("%d", res);
    return 0;
}

这个东西为什么能 85pts?

2021/10/24 17:36
加载中...