Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
193089 | zjx1015 | 宝藏 | C++ | 通过 | 100 | 0 MS | 304 KB | 655 | 2025-05-06 19:09:49 |
#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; }