Pow(x, n)Implement pow(x,n).算法思路:二分法,没什么好说的,小心点就行;这个题时间比较苛刻。return pow(x,n >> 1) * pow(x,n >> 1) 是过不去的,因此把pow(x,n / 2)求出来先。其实时间复杂度而言,是一样的。【注意】:n的取值范围;...
分类:
其他好文 时间:
2014-07-26 01:45:56
阅读次数:
242
UVA 10668 - Expanding Rods
题目链接
题意:给定一个铁棒,如图中加热会变成一段圆弧,长度为L′=(1+nc)l,问这时和原来位置的高度之差
思路:画一下图可以很容易推出公式,设圆弧扇形部弧度r,那么可以计算出铁棒长度为lr/sin(r)这个公式在[0,
pi/2]是单调递增的,所以可以用二分法去求解
要注意的一点是最后答案计算过程中带入mid,...
分类:
其他好文 时间:
2014-07-24 10:44:30
阅读次数:
180
题目描述:给定N个整数,M个问题对于每个问题,你需要回答数字A是否在N个数字里出现过输入:第一行是两个整数N和M ( 0 #include #define N 1000001int num[N];int n, m;void Read();int Mycmp(const void *a, const ...
分类:
其他好文 时间:
2014-07-24 09:48:23
阅读次数:
212
题目大意是,一个集合中有N个元素,找出最大的S,满足条件A+B+C=S,并且这四个数都属于该集合,N不超过1000.
如果直接枚举O(n^4)显然复杂度太高,将等式转化一下A+B=S-C,此时分别对左右两边的值进行枚举,这一步复杂度为O(n ^ 2),接着就用二分法查找满足该等式的最大S值,
复杂度为O(n^2*log(n))。
#include
#include
#in...
分类:
其他好文 时间:
2014-07-23 16:39:22
阅读次数:
156
题目大意:河道两旁直线上有两块石头不能移动,距离为L,但中间放置了N块石头并列出这N块石头到起点的距离,可以移走M块,那么移走石头后每次牛跨石头的最小距离如何达到最大值,输出这个最大值让最小距离的最大值就直接想到二分法,之前也用循环通过一次次移走石头但移走的石头数量一大就会超时。代码如下: 1 #i...
分类:
其他好文 时间:
2014-07-22 22:49:15
阅读次数:
159
二分法插入排序算法思想简单描写叙述:在插入第i个元素时,对前面的0~i-1元素进行折半,先跟他们中间的那个元素比,假设小,则对前半再进行折半,否则对后半进行折半,直到left>right,然后再把第i个元素前1位与目标位置之间的全部元素后移,再把第i个元素放在目标位置上。二分法没有排序,仅仅有查找。...
分类:
其他好文 时间:
2014-07-22 22:46:36
阅读次数:
250
题设:设数组a[0],…,a[n-1]中存放着n>=1个已由小到大排序的不同整数,判断整数x是否在数组a中。若是,返回j,使得x=a[j];否则,返回-1。题解:利用数组中的整数已排序的性质,可以设计高效的求解算法。令left和right分别表示当前需要查找的数组部分的起点与终点下标。初始时,lef...
分类:
其他好文 时间:
2014-07-22 22:37:13
阅读次数:
170
数据库及mysql二分法:平均大概需要十四次左右就能找到我们需要查找的数据;问题是文件需要事先排好顺序;我们将某一列给提取出来,通过二分法,平均14次找到这个用户名本身,这里面存放的是数据文件的地址。我们将这个文件叫做索引文件。INDEX。第二种方法叫做:B+数索引;是..
分类:
数据库 时间:
2014-07-22 18:24:12
阅读次数:
317
#includeintnum[]={3,5,7,9,10,10,10,12,15,20,25,30};//10个数intlower_bound(int*A,intL,intR,intV){intm;while(L=V)R=m;//所求点在中点以左elseL=m+1;//所求点在中点以右}return...
分类:
其他好文 时间:
2014-07-18 14:29:37
阅读次数:
268
#include using namespace std;int num[]={3,5,7,9,10,12,15,20,25,30};//10个数int main(){ int x; while(cin>>x) { int L,R,mid; L=0;R=...
分类:
其他好文 时间:
2014-07-18 14:24:25
阅读次数:
314