Acwing-----1012. 友好城市

算法

1.每个城市只能建一座桥
2.桥与桥之间不能相交
所有合法的建桥方式<----->上升子序列

代码

#include <iostream>
#include <queue>
#include <algorithm>
using namespace std;
typedef pair<int, int> PII;
const int N = 5010;
int n, f[N];
PII q[N];

int main() {
    cin >> n;
    for (int i = 0; i < n; ++i) cin >> q[i].first >> q[i].second;
    sort(q, q + n);
    int ans = 0;
    for (int i = 0; i < n; ++i) {
        f[i] = 1;
        for (int j = 0; j < i; ++j) {
            if (q[i].second > q[j].second) {
                f[i] = max(f[i], f[j] + 1);
            }
        }
        ans = max(ans, f[i]);
    }
    cout << ans << endl;
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/clown9804/p/12581042.html