二分搜索思想:bool C(double x)可以得到长度为x的绳子//#define
LOCAL#include#includeint const MAX_N=10005;int const MAX_M=100;double const
INF=100000000;int N,K;double d...
分类:
其他好文 时间:
2014-05-17 00:13:44
阅读次数:
271
二分查找又称折半查找,它是一种效率较高的查找方法。折半查找的算法思想是将数列按有序化(递增或递减)排列,查找过程中采用跳跃式方式查找,即先以有序数列的中点位置为比较对象,如果要找的元素值小于该中点元素,则将待查序列缩小为左半部分,否则为右半部分。通过一次比较,将查找区间缩小一半。
折半查找是一种高效...
分类:
编程语言 时间:
2014-05-16 07:10:02
阅读次数:
329
题意:在一个二维矩阵中找到给定的值。矩阵从上到下从左到右有序
思路:二维空间的二分查找
先在一维里找中间位置,再将该位置转为二维空间里的下标
注:下标比较难弄,得注意点
复杂度: 时间O(log n),空间O(1)
相关题目:
Search Insert Position...
分类:
其他好文 时间:
2014-05-15 07:24:42
阅读次数:
253
求一个数的开平方,方法有很多,最简单的方法就是二分法,再上一个档次是牛顿迭代法,还有更上档次的算法涉及到更高深的数学知识。这里只是尝试这两种方法。
1、二分法求平方根,直接上代码。 1 /*****************************************************...
分类:
其他好文 时间:
2014-05-14 06:50:12
阅读次数:
312
1 /** 2 题解晚上写 3 **/ 4 #include 5 #include 6
#include 7 #include 8 using namespace std; 9 const double esp = 1e-5;10 int
main()11 {12 double l...
分类:
其他好文 时间:
2014-05-13 21:05:08
阅读次数:
315
1 /** 2 大意:
有连续的n天,每一天有一定的花费,将其分成m份,每一份占一天或者连续的几天,求这m份中的最大值 3 思路:
二分其最大上限,看在此最大上线,能分成多少份,若大于m份,说明上限过小,需要扩大上限 4 若小于m份,则说明,下限过大,需要缩小上限。 5 **...
分类:
其他好文 时间:
2014-05-13 20:40:31
阅读次数:
247
顺序查找的时间复杂度是O(n),如果数组一开始是有序的,那么用顺序查找的效率是比较低的,因为二分查找等方式能够拥有更低的时间复杂度,但是如果一开始是无序的,那么顺序查找有可能比其他查找更加的快速。
二分查找主要是应用在有序的数组织中,采取的是一种分治的思想,先在数组中去中值,然后将中值...
分类:
其他好文 时间:
2014-05-13 20:27:07
阅读次数:
251
1 /** 2 大意:给定n个点,删除其中的m个点,其中两点之间距离最小的最大值 3 思路:
二分最小值的最大值---〉t,若有距离小于t,则可以将前面的节点删除;若节点大于t,则继续往下查看 4
若删除的节点大于m,说明t,过于大,需要减小;若删除的节点小于m说明t过于小了,...
分类:
其他好文 时间:
2014-05-13 20:02:30
阅读次数:
232
题目链接:1350 - Pinary
题意:二进制数,不能有连续的1,给定第n个数字,输出相应的二进制数
思路:先是递推,求出由n位组成的数字中有几个满足条件
dp[i] = dp[i - 1] + dp[i - 2],考虑最后一位放0和倒1位放0的情况。
然后用一个sum[i]记录满足
接着利用二分找到给定的n > sum[i - 1],i的最大值,这个就是所求的答案的最高位。
因为...
分类:
其他好文 时间:
2014-05-13 14:10:44
阅读次数:
246
中心节点就是树的中心,2遍dfs求到树的直径,而中心一定在直径上,顺着直径找到中心就够了。
然后可以一遍树形DP找到最小值或者二分+判断是否访问到叶子节点。
#include
#include
#include
#include
using namespace std;
struct node
{
int next;
int power;
int length...
分类:
其他好文 时间:
2014-05-13 11:28:38
阅读次数:
306