水题堆1.E 今年暑假不AC (贪心)
2018-02-13 15:49
417 查看
#include <stdio.h> #include <stdlib.h> struct Pro { int start; int end; int t; }pro[101],a,b; void quicksort(struct Pro pro[],int n,int be,int e) { int i,j; if(be<e){ i=be+1; j=e; while(i<j){ if(pro[i].end>pro[be].end){ a.t=pro[j].end; pro[j].end=pro[i].end; pro[i].end=a.t; b.t=pro[j].start; pro[j].start=pro[i].start; pro[i].start=b.t; j--; } else i++; } if(pro[i].end>=pro[be].end)i--; a.t=pro[be].end; pro[be].end=pro[i].end; pro[i].end=a.t; b.t=pro[be].start; pro[be].start=pro[i].start; pro[i].start=b.t; quicksort(pro,n,be,i); quicksort(pro,n,j,e); } } int main() { int n; while(1){ scanf("%d",&n); if(n==0)break; int k=0,cur,i; for(i=0;i<=n-1;i++){ scanf("%d%d",&pro[i].start,&pro[i].end); } quicksort(pro,n,0,n-1); for(i=n-2;i>0;i--){ if(pro[i].end==pro[i-1].end){ if(pro[i].start>pro[i-1].start){ a.t=pro[i].start; pro[i].start=pro[i-1].start; pro[i-1].start=a.t; b.t=pro[i].end; pro[i].end=pro[i-1].end; pro[i-1].end=b.t; } } } k++; cur=pro[0].end; // printf("\n"); for(i=1;i<=n-1;i++){ if(cur<=pro[i].start){ k++; cur=pro[i].end; //printf("%d %d\n",pro[i].start,pro[i].end); } } // printf("\n"); //for(i=0;i<=n-1;i++)printf("%d %d\n",pro[i].start,pro[i].end); printf("%d\n",k); } return 0; }这个题思路就是每选一个节目,都要找当前情况下结束最早的。这个题当时写的时候有点迷糊,主要是对结构体
还有点陌生,很少用。最后写完运行没有error还是很惊喜的233333
相关文章推荐
- VJ水题——今年暑假不AC(简单贪心)
- HDU 2037 今年暑假不AC(简单贪心)
- 今年暑假不AC(贪心)
- 贪心选择--九度1443[今年暑假不AC]
- 【杭电OJ】2037-今年暑假不AC(经典贪心)
- 【HDU2037】 今年暑假不AC(贪心,sort)
- 贪心算法:今年暑假不AC
- 【HDU 2037】今年暑假不AC 贪心
- hdu 2037 今年暑假不AC(贪心)
- hdu2037今年暑假不AC 贪心
- HDU2037 今年暑假不AC 贪心
- hdu 2037 今年暑假不AC 贪心
- HDU2037今年暑假不AC(贪心)
- 今年暑假不AC(贪心)
- 今年暑假不AC(贪心 区间覆盖)
- [贪心]HDU2037 今年暑假不AC
- HDU 2037 - 今年暑假不AC(贪心 + 动态)
- HDU~2037~今年暑假不AC~【贪心】
- Num 25 : NYOJ0014 会场安排问题 + HDOJ2037:今年暑假不AC [ 贪心 ][ 选择不相交区间 ]
- hdu2037 今年暑假不AC (贪心)