hdu2037的思考

it2022-05-09  17

hdu2037不是什么难题但是之前曾做过这道题,一直没想出什么思路就是导师贪心可以做出来,但是一直没有思路,然后今天寒假没事干,便有看到这道题其实发现自己有点思路了,然后便开始做,开始想,其实自己想出来了,但是不知道怎么用计算机语言如何让去表达,当然了,这之间为什么之前没想出来的原因,可能是自己刷的题太少了,自己的思维逻辑能力太差,包括自己对计算机语言不熟练,这都可能原因,考来这几个月刷题没有白费,不断提高自己的路基思维能力,还是很高兴的

但是自己逻辑思维想到了,但是自己的计算机语言不知道如何表达,因此便参考了别人的代码,主要是排序后不知道怎么说清楚,自己边整理了一下思路来做一总结,

1只要p[i] 的结束时间比temp的结束时间还早,那么就要抛弃原来temp,然后把p[i]作为temp,因为只有时间短,才能保证看的节目越多,题目要求看的节目多嘛,只有这样

2p[i]的结束时间小于等于temp开始时间,便可以加1,然后这时把p[i]时间定为temp的时间,来进行

就是依靠这个思路,来进行的,还有num初始化不是0,而是1,因为它本身就是一个

 1 #include <stdio.h>

 2 #include <stdlib.h>  3   4  struct ma  5 {  6      int tis;  7      int tie;  8 }p[ 100];  9  10  int cmp( const  void *a, const  void *b) 11 { 12      struct ma *m=( struct ma *)a; 13      struct ma *n=( struct ma *)b; 14      if(m->tis != n->tis) 15      return m->tis-n->tis; 16      else 17      return m->tie-m->tie; 18  19 } 20  int main() 21 { 22      int n,i,num; 23      struct ma temp; 24      while(scanf( " %d ",&n)&&n!= 0) 25     { 26          for(i= 0;i<n;i++) 27         scanf( " %d %d ",&p[i].tis,&p[i].tie); 28  29         qsort(p,n, sizeof(p[ 0]),cmp); 30         temp.tis=p[ 0].tis; 31         temp.tie=p[ 0].tie; 32         num= 1; 33          for(i= 1;i<n;i++) 34         { 35              if(p[i].tie<temp.tie) 36             { 37                 temp.tis=p[i].tis; 38                 temp.tie=p[i].tie; 39             } 40              if(p[i].tis>=temp.tie) 41             { 42                 num++; 43                 temp.tis=p[i].tis; 44                 temp.tie=p[i].tie; 45             } 46         } 47         printf( " %d\n ",num); 48     } 49      return  0;

50 } 

 

 

转载于:https://www.cnblogs.com/yelcoved/archive/2013/02/03/2891064.html


最新回复(0)