HDOJ2037 今年暑假不AC (經典的貪心問題)
阿新 • • 發佈:2019-02-19
A的第一道貪心題目,花了我好幾天的時間。
之前不太懂貪心的思想,參閱了一些演算法書籍,才有所領會。
今天中午吃飯的時候也在想這道題目,冥思苦想突然靈感來了,這道題要用結構體才行。
於是下午仔細看了C語言的結構體。
剛開始還畫了草圖幫助理解。
程式碼結合上面的圖更容易理解。
#include<iostream> using namespace std; struct{ int s,e; }tmp,tv[105];//定義一個結構體陣列,s,e分別表示節目的起始時間和終止時間。 int main(){ int n,count,index,i,j; while(scanf("%d",&n)&&n!=0){ count=1; for(i=1;i<=n;i++) scanf("%d%d",&tv[i].s,&tv[i].e); for(i=1;i<=n-1;i++)//先用氣泡排序法把結構體按e從小到大排序 for(j=1;j<n-i;j++){ if(tv[j].e>tv[j+1].e){ tmp=tv[j]; tv[j]=tv[j+1]; tv[j+1]=tmp; } } index=tv[1].e; for(i=1;i<n;i++){ if(tv[i+1].s>=index){ count++; index=tv[i+1].e; } } printf("%d\n",count); } return 0; }