二分查找
一只努力的小小白
这个作者很懒,什么都没留下…
展开
-
二分查找:计算sqrt(2)的近似值
我们知道这个值的大小一定在1到2之间,所以采用二分的思想,left=1,right=2,然后不断判断mid来计算right-left>eps(eps=1e-5),直到小于这个数截止。具体代码如下:#include <stdio.h>#include <iostream>using namespace std;const double eps=1e-5...原创 2019-04-13 20:10:43 · 2610 阅读 · 0 评论 -
二分:木棒切割
问题:给出N根木棒,长度均已知,现在希望通过切割他们来得到至少K段长度相等的木棒(长度必须为整数),问这些长度相等的木棒最长有多长?这一题可以利用二分的思想来求解,最短是0(left),最长为最长木棒的长度(right),不断对这个区间进行二分,且每次分完计算所能得到的木棒的条数,如果相同则返回,否则继续。具体代码如下:这里假定有三根木棒,长度分别为10,24,15#include ...原创 2019-04-13 20:39:25 · 846 阅读 · 0 评论 -
快速幂
1.快速幂的递归写法typedef long long LL;LL binaryPower(LL a,LL b,LL m){ if(b==0) return 1; if(b%2==1) return a*binaryPower(a,b-1,m)%m; else { LL mul=binaryPower(a,...原创 2019-04-13 21:11:19 · 114 阅读 · 0 评论 -
二分查找模板
1.a[ ]为严格递增序列,left为二分下界,right为二分上界,x为想要查找的数int solve(int a[],int left,int right,int x){ int mid; while(right>=left) { mid=(left+right)/2; if(a[mid]==x) r...原创 2019-04-14 21:31:33 · 958 阅读 · 0 评论