1 条题解

  • 1
    @ 2026-9-18 16:38:13
    #include <iostream>
    #include <vector>
    #include <algorithm>
    using namespace std;
    const int MAXN = 100005;
    int mp[100005]; // 数值映射到A中的下标
    
    int main() {
        ios::sync_with_stdio(false);
        cin.tie(nullptr);
        int n;
        cin >> n;
        vector<int> a(n), b(n);
        for(int i = 0; i < n; ++i) {
            cin >> a[i];
            mp[a[i]] = i;
        }
        for(int i = 0; i < n; ++i) {
            cin >> b[i];
        }
        vector<int> lis;
        for(int x : b) {
            int idx = mp[x];
            auto it = lower_bound(lis.begin(), lis.end(), idx);
            if(it == lis.end()) {
                lis.push_back(idx);
            } else {
                *it = idx;
            }
        }
        cout << lis.size() << endl;
        return 0;
    }
    
    
    
    • 1

    信息

    ID
    1434
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    1
    已通过
    1
    上传者