二分 | 三分
ITCharge
高效率编程,慢节奏生活。
展开
-
HDU2438 Turn the corner【三分法】【数学几何】
题目大意:有一个直角拐角,给你水平道路宽度Y和竖直高度X,再给你汽车的长l,宽w问:汽车是否能通过这个拐角。思路:如果汽车的宽度大于水平道路宽度Y或是竖直高度X,无论如何都通不过。接下来考虑一般情况。如图:若汽车最左边与墙一直靠紧,则只需要判断右边最高点是否超过了Y。设θ为汽车与水平方向的夹角,s为汽车最右边的角到拐点的水平距离。那么s = l*cos(θ) + w*sin(θ) - x,从而得出 h = s*tan(θ)+w*cos(θ)。θ角从0~π/2,变化,h则从低到高再到底,且是一个原创 2014-12-17 09:34:56 · 1269 阅读 · 0 评论 -
HDU2178 猜数字【水题】【推理】
题目大意:有1~M的数字,最多猜N次一定能猜到1~M的任意数字,求M能达到的最大值。思路:用二分法在最多N次的时候找到任意1~M的任意数字,N是已知的,二分的范围是1~M,左边界为1,右边界为M,若想M最大,则尽量使取值向右边界靠。考虑N = 3,N = 4的情况。N = 3时,每次取值都在区间右边取值,第一次二分后区间[(1+M)/2,M],第二次二分后区间[((1+M)/2+1+M)/2,M],第三次二分后区间[(((1+M)/2+1+M)/2+1+M)/2,M],此时,左右区间等值,即(((原创 2015-01-30 11:11:38 · 1384 阅读 · 0 评论 -
POJ2296 Map Labeler【2-SAT】【二分】
题目大意:制作地图是一件很复杂的工作,其中一项任务就是为地图上的城市制作标示——在地图上每个城市的所在位置附近贴上一个文字标签。标签的一个要求就是亮亮不能重叠。本题中,假设每个城市都是平面上的一个点,坐标为(x,y),他的标签是一个平行于xy轴的正方形,现在要求代表每个城市的点处于正方形标签的顶边正中央或是底边正中央,如下图所示。对于一个好的地图,所有的标签大小都应该相同,并且任意两个标签之间没有重叠,但是可以有公共边。那么问题来了:给定所有城市在平面上的坐标(全部为整数),计算出符合上述要求的原创 2015-02-21 11:23:23 · 1117 阅读 · 0 评论 -
POJ1845 Sumdiv【因数之和】【二分求等比数列】
题目大意:对于两个自然数A和B,令s = A^B所有约数和,计算s%9901的结果是多少思路:小優的博客对这道题写的非常好,参考博文:http://blog.csdn.net/lyy289065406/article/details/6648539对A进行素因子分解,A = p1^k1 * p2^k2 * … * pm^km,则A^B = p1^(k1*B) * p2^(k2*B) * … *pm^(km*B)。利用乘性函数的性质:所偶因子和为 s = (1 + p1 + p1^2 + …原创 2015-03-24 22:42:43 · 930 阅读 · 0 评论 -
二分查找、三分查找求极点、二分求等比数列【模板】
二分查找:int a[110],N;int BinarySearch(int *a,int x){ int Left = a[1]; int Right = a[N]; while(Left <= Right) { int mid = (Left+Right)>>1; if(a[mid] == x) retu原创 2015-05-06 15:36:39 · 1159 阅读 · 0 评论