设为首页 加入收藏

TOP

poj 2456 二分法 最大化最小值
2014-11-24 12:43:44 】 浏览:2683
Tags:poj 2456二分 最大化 最小

重新练习下二分法,发现还是手速不够

从这道题学到一下几点:

1、线性分几段的方法,看我的Judge()代码;

2、二分的while()最终打印的是down,而不是mid(我代码里写的是ans),或者up,

这么想:跳出循环的时候,假设while里的判断,Judge(ans)==1,那么down是正确解,up不是

Judge(ans)==0,那么ans跟up都不是正确解

综上,打印down才能输出正确解

3、调了好一会二才发现的bug:Judge函数里,if(cnt

贴代码:

#include 
  
   
#include 
   
     #include 
    
      #include 
     
       using namespace std; const int MAXN = 100000+10; int n,c; int dis[MAXN]; int Judge(int s) { int cnt=0,last=0,now=0; while(now
      
       1) { ans=(up+down)/2; if(Judge(ans))down=ans; else up=ans; } printf(%d ,down);//  ans  } } 
      
     
    
   
  


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Lua与C/C++交互――C/C++导出Dll 下一篇嵌套矩形 DAG上的dp(深搜+dp)

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目