设为首页 加入收藏

TOP

hdu 4932 /bestcoder B题 #4 /思维题
2015-07-20 17:57:08 来源: 作者: 【 】 浏览:4
Tags:hdu 4932 /bestcoder 思维

题意:给一个数列(整数),用一些不相交的区间去覆盖(只能是用端点去覆盖,端点可以交)。而且区间出度相等。求最大区间长度。

开始一下就敲了,枚举每个区间长度,判断合法,更新最大。但是后来一看小数,感觉不行,改为二分,后来还是挂了。。。

赛后才知道,二分的时候,答案必需要满足单调性啊,这里小的数据不行,大的数据可以行!如 0 1 5 6 10, 3不行,4行。

后来才知道,枚举时,每个差值的一半也是可以的:仔细想想很容易证明。(水,坑)

#include
  
   
#include
   
     #include
    
      #include
     
       using namespace std; vector
      
       v; int n; bool ok(double tmax) { int fl=-1; for(int j=1;j
       
        dis; int main() { int T; cin>>T; while(T--) { cin>>n; int tx=0; v.clear(); dis.clear(); for(int i=0;i
        
         >tx; v.push_back(tx); } sort(v.begin(),v.end()); for(int i=0;i
         
          =0;i--) { if(ok(dis[i])) { printf("%.3lf\n",dis[i]); break; } } } return 0; } 
         
        
       
      
     
    
   
  


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇hdu 4932 Miaomiao's Geometr.. 下一篇CodeForces 451D Count Good Subs..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: