zoj1076 Gene Assembly 活动安排 dp

来源:互联网 发布:行业研究报告 知乎 编辑:程序博客网 时间:2024/05/02 02:11

题目总不让人省心,大致有两种,一种是题目很好懂,程序不好写;另一种是题目不好懂,程序很好写。。。

题简单了就会在语言上麻烦你。。。

回顾qsort用法,第一个参数为数组名,第二个参数为元素个数,第三个为sizeof ( 数组类型),第四个为cmp函数。

#include<stdio.h>#include<stdlib.h>typedef struct node{  int beg;  int end;  int x;}NODE;NODE a[1005];int b[1005];int cmp(const void *a,const void *b)    {        return ((NODE*)a)->end > ((NODE*)b)->end ? 1 : -1;    }    int main(){  int n,i,j,k,begin,ends;  while(scanf("%d",&n)&&n)  {    for(i=0;i<n;i++)    {      scanf("%d%d",&a[i].beg,&a[i].end);      a[i].x=i+1;    }     qsort(a,n,sizeof(NODE),cmp);    k=0;    b[k++]=a[0].x;    ends=a[0].end;    for(i=1;i<n;i++)       if(a[i].beg>=ends)       {         b[k++]=a[i].x;         ends=a[i].end;       }      for(i=0;i<k-1;i++)      printf("%d ",b[i]);    printf("%d\n",b[i]);  }  return 0;}