POJ2456 Aggressive cows(二分+贪心)

2015-07-20 17:29:22 · 作者: · 浏览: 7

假设C(d)为满足所有牛之间的距离都不小于d。先对牛舍的位置排序,然后二分枚举d,寻找满足条件的d。

#include
  
   
#include
   
     #include
    
      #include
     
       #include
      
        #include
       
         #include
        
          #include
          #include
          
            #include
           
             #define ll __int64 #define INF 0x3fffffff using namespace std; int n,m; int x[100005]; bool C(int d) { int num=1; int a=x[0]; int i=1; while(num
            
             1) { int mid=(r+l)/2; if(C(mid)) l=mid; else r=mid; } cout<
             
              >n>>m; for(int i=0;i