提交时间:2025-05-06 19:09:49
运行 ID: 193089
#include<bits/stdc++.h> using namespace std; long long n,m,p; vector<pair<long long,long long>> v; vector<long long> dp; bool cmp(pair<long long,long long> a,pair<long long,long long> b){ return a.first==b.first?a.second<b.second:a.first<b.first; } int main(){ scanf("%lld%lld%lld",&n,&m,&p); long long x,y; for(int i=0;i<p;i++){ scanf("%d%d",&x,&y); v.push_back({x,y}); } sort(v.begin(),v.end(),&cmp); for(auto num:v){ auto pos=upper_bound(dp.begin(),dp.end(),num.second); if(pos==dp.begin())dp.insert(dp.begin(),num.second); else *(pos-1)=num.second; } printf("%d",dp.size()); return 0; }