USACO 1.3 Barn Repair(贪心)

2015-01-27 06:07:53 · 作者: · 浏览: 14

这道题同样也是贪心

要使木板总长度最少,就要使未盖木板的长度最大。

我们先用一块木板盖住牛棚,然后,每次从盖住的范围内选一个最大的空隙,以空隙为界将木板分成两块,重复直到分成m块或没有空隙。

/*
  ID:twd30651
  PROG:barn1
  LANG:C++
*/
#include
  
   
#include
   
     #include
    
      //#define DEBUG using namespace std; int M; int S; int C; int origin_data[300]; int process_data[300]; int comp(const void*a,const void*b) { return*(int*)a-*(int*)b; } int comp2(const void*a,const void*b) { return*(int*)b-*(int*)a; } int main(int argc,char *argv[]) { freopen("barn1.in","r",stdin); freopen("barn1.out","w",stdout); scanf("%d %d %d",&M,&S,&C); int i=0; int min=300; int max=0; while(scanf("%d",&origin_data[i])==1) { if(origin_data[i]>max)max=origin_data[i]; if(origin_data[i]
     
      网上有说可以用dp,后面学习下