nyoj236_心急的c小加

来源:互联网 发布:网站域名需要公安备案 编辑:程序博客网 时间:2024/05/08 10:36

原题链接》》》


求最长递增子序列的条数(最少能分成几个递增子序列)

#include<stdio.h>#include<stdlib.h>#include<string.h>typedef struct{    int l,w;}bang;int cmp(const void*a,const void*b){    bang*c=(bang*)a;    bang*d=(bang*)b;    if(c->l==d->l)        return c->w-d->w;    return c->l-d->l;}int dp[5001];int main(){    int T,N,l,w,i,j,cnt,max;    bang B[5001];    scanf("%d",&T);    while(T--){        memset(dp,0,sizeof(dp));        cnt=0;        scanf("%d",&N);        for(i=0;i<N;i++)        scanf("%d%d",&B[i].l,&B[i].w);        qsort(B,N,sizeof(bang),cmp);        for(i=0;i<N;i++){            if(dp[i]==0){                cnt++;                max=B[i].w;                for(j=i+1;j<N;j++){                    if(B[j].w>=max&&dp[j]==0){                        max=B[j].w;                        dp[j]=1;                    }                }            }        }        printf("%d\n",cnt);    }    return 0;}
0 0