题意分析:
看完这道题之后大家应该第一感觉就是这事一道水题。是的,我也是这样感觉的,我WA了好多遍,原因就是我对满足当‘王’的条件没搞清楚。
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
struct px{
int x,y;
}s[50010];
int cmp(struct px a,struct px b) {
if(a.x<b.x) return 1;
if(a.x == b.x && a.y<b.y) return 1;
return 0;
}
int main() {
int n,a,b,x,y;
while(scanf("%d",&n) && n) {
for(int i=0; i<n; i++) scanf("%d%d",&s[i].x,&s[i].y);
sort(s,s+n,cmp);
int sum=1,ma=s[n-1].y;
for(int i=n-2; i>=0; i--) {
if(s[i].y>ma) {
sum++;
ma=s[i].y;
}
}
printf("%d\n",sum);
}
return 0;
}
代码如下: