2016SDAU課程練習一Problem E

1題目編號:Problem E

2簡單題意:知道了所有你喜歡看的電視節目的轉播時間表,做合理安排,輸出能完整看到的電視節目的個數。

3.解題思路形成過程:(1) 由輸出能完整看到的電視節目的個數,得與貪心法的活動安排問題完全相同。(2)因爲要輸出個數,所以要定義一個計數器。

4.感想:是我聽完貪心法做的第一道, 感覺挺easy,以爲按照模板來就好了,結果,看了其他幾道題,才知道,需要掌握的是貪心法的思想,還需要多看多做。

5.AC代碼:如下

#include <iostream>


using namespace std;


#include<algorithm>


struct action{


    int s;


    int f;


};


  bool cmp(const action &a,const action &b)


  {
      if(a.f<=b.f)return true;


      return false;


  }




int main()


{


   //freopen("memory","r",stdin);


    int n,sum;


    action a[100];


    while(cin>>n&&n!=0)


    {


        sum=1;


        for(int i=0;i<n;i++)


        cin>>a[i].s>>a[i].f;


        sort(a,a+n+1,cmp);


        int pre=1;


        for(int i=2;i<=n;i++)


        if(a[i].s>=a[pre].f)


        {


            pre=i;


            sum++;


        }


        cout<<sum<<endl;
    }
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章