改到心态崩了,评论者都可互关
WA7个
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e6+10;
int n,ans;
struct node{
int x,y;
}a[N];
int t[N],sum=-1;
signed main(){
cin>>n;
for(int i=1;i<=n;++i){
cin>>a[i].x>>a[i].y;
if(t[a[i].x]==0) t[a[i].x]=i;
else {
if(a[t[a[i].x]].y>a[i].y)
t[a[i].x]=i;
}
sum=max(sum,a[i].y);
}
/*
cout<<endl;
for(int i=0;i<=sum;++i)
cout<<a[t[i]].x<<' '<<a[t[i]].y<<endl;
*/
int c=N,d=0;
for(int i=0;i<=sum;++i){
if(t[i]==0) continue;
if(a[t[i]].y<c){
c=a[t[i]].y;
d=i;
}
}
int i=d;
while(a[t[i]].y<=sum && i<=sum){
//cout<<i<<endl;
if(t[i]==0){
i++; continue;
}
ans++;
if(a[t[i]].y==sum) break;
i=a[t[i]].y;
}
cout<<ans;
return 0;
}
感谢大佬!!! (验证码有waQAQ)