AcWing
  • 首页
  • 活动
  • 题库
  • 竞赛
  • 校园
  • 应用
  • 文章
    • 题解
    • 分享
    • 问答
  • 吐槽
  • 登录/注册

AcWing 1012. 友好城市    原题链接    简单

作者: 作者的头像   我呼吸了 ,  2022-05-12 14:24:27 ,  所有人可见 ,  阅读 9


0


/*
不妨设各个友好城市对(x,y)
转化:可以将这些成对的友好城市,按照其中一个数(x)进行排序,排序完成后可以发现如果要满足题意,
选择的时候y必须是单调上升的,至此本问题可以转换为最长上升子序列问题求解
*/

#include <bits/stdc++.h>

#define x first
#define y second

using namespace std;

typedef pair<int,int> pii;

const int N = 5010;

pii a[N];
int f[N];
int n;

int main()
{
    cin >> n;
    for(int i = 1; i <= n; i++) cin >> a[i].x >> a[i].y;

    sort(a+1,a+1+n);

    for(int i = 1; i <= n; i++)
    {
        f[i] = 1;

        for(int k = 1; k < i; k++)
        {
            if(a[k].y < a[i].y) f[i] = max(f[i],f[k]+1);
        }
    }

    int res = -1;
    for(int i = 1; i <= n; i++) res = max(res,f[i]);

    cout << res << endl;

    return 0;
}

0 评论

你确定删除吗?
1024
x

© 2018-2022 AcWing 版权所有  |  京ICP备17053197号-1
用户协议  |  常见问题  |  联系我们
AcWing
请输入登录信息
更多登录方式: 微信图标 qq图标
请输入绑定的邮箱地址
请输入注册信息