首先 要先定义结构体的书写形式:
bool cmp(point a,point b) 为例
定义结构体的使用方式 如何使用来达到排序的作用
其次是在排序过程中 例:
sort(c,c+n,cmp) C可以是之前定义好的数组 而n则是个数的多少 cmp则是把快排的排列顺序按之前设定好的结构体的形式排序
以下是例题演示:猴王
#include<stdio.h> #include<math.h> #include<algorithm> using namespace std; struct point { int x; int y; } c[50001]; bool cmp(point a,point b) { if(a.x==b.x)return a.y<b.y; return a.x<b.x; } int main() { int n; while(scanf("%d",&n)!=EOF) { if(n==0)break; int i; for(i=0;i<n;i++) { scanf("%d %d",&c[i].x,&c[i].y); } sort(c,c+n,cmp); int king1=c[n-1].x; int king2=c[n-1].y; int sum=1; for(i=n-1;i>=0;i--) { if(c[i].x==king1) continue; if(c[i].x<king1) { king1=c[i].x; if(c[i].y>king2) { sum++; king2=c[i].y; } } } printf("%d\n",sum); } return 0; }