1 条题解

  • 0
    @ 2025-2-14 21:11:41

    C :

    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    
    struct num{
    	int b,c;
    }a[10002];
    
    int cmp(const void *x,const void *y){
    	struct num * a1=(struct num *)x;
    	struct num * a2=(struct num *)y;
    	if(a1->c!=a2->c)
    		return (a1->c<a2->c)?-1:1;
    	else
    		return (a1->b<a2->b)?-1:1;
    }
    
    int main()
    {
    	int m;
    	scanf("%d",&m);
    	while(m--){
    		int n,i,p,count=1;
    		scanf("%d",&n);
    		for(i=0;i<n;i++)
    			scanf("%d%d",&a[i].b,&a[i].c);
    
    		qsort(a,n,sizeof(a[0]),cmp);
    
    		p=a[0].c;
    		
    		for(i=1;i<n;i++){
    			if(a[i].b>p){
    				count++;
    				p=a[i].c;
    			}
    		}
    		printf("%d\n",count);
    	}
    	return 0;
    }
    
    
    

    C++ :

     #include<stdio.h>
     #include<string.h>
     #include<iostream>
     #include<algorithm>
     using namespace std;
     struct node
     {
        int start;
        int end;
     }s[10003];
     bool cmp(node x,node y)
     {
        if(x.end==y.end)
        return x.start>y.start;
        return x.end<y.end;
     }
     int main()
     {
         int test,num,n,flag,i;
         scanf("%d",&test);
         while(test--)
         {
             num = 1;
             scanf("%d",&n);
             for(i=0;i<n;i++)
             scanf("%d%d",&s[i].start,&s[i].end);
             sort(s,s+n,cmp);
             flag = s[0].end;
             for(i=1;i<n;i++)
             if(s[i].start>flag)
             {
                num ++;
                flag = s[i].end;
             }
             printf("%d\n",num);
    
        }
        return 0;
     }
    
    
    • 1

    信息

    ID
    705
    时间
    1000ms
    内存
    64MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者