二分搜索思想: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
题意:输出一个元素在一个已排序的数组中的位置,如果不存在输出它应该插入的位置
思路:二分查找,如果找到就输出位置,找不到就输出它应该插入的位置
复杂度:时间O(log n),空间O(1)
相关题目:
Search for a Range
Search a 2D Matrix...
分类:
其他好文 时间:
2014-05-15 05:57:32
阅读次数:
271
题目描述开头一大堆屁话,我还仔细看了半天。。其实就最后2句管用。意思就是给出n本书的页数然后要分成k份,每份的最大值要最小。问你分配方案,如果最小值相同情况下有多种分配方案,输出前面份数小的,就像字典序输出从小到大一样的意思。
这里用到贪心的方法,定义f(x)为真的条件是满足x为最大值使n本书分成k份,那么就是求x的最小值。如何确定这个x就是用的二分法,x一定大于0小于所有值的合,不断的二分再判...
分类:
其他好文 时间:
2014-05-15 05:29:57
阅读次数:
236
Problem Description
The new semester begins! Different kinds of student societies are all trying to advertise themselves, by giving flyers to the students for introducing the society. However, due ...
分类:
其他好文 时间:
2014-05-15 03:57:24
阅读次数:
311
这题那时怎么想就是想不出来……而且今晚没有多大状态,自己都晕了……一题没做出来……
baoge解释好久才懂……唉……线段树,树状数组用得还是不够熟啊……
WA了二发,才知道二分错了,二分好久不用,老是出错了现在……
#include
#include
#include
#include
#define sca(a) scanf("%d",&a)
#define mem(a,b) memset...
分类:
其他好文 时间:
2014-05-15 03:30:49
阅读次数:
223
题意:给一个整数序列(可能有负数),求最短的连续序列使得序列之和大于等于整数x;
解法:第一种是On的复杂度:
我们要的是sum[j]-sum[i]>=x,如果有两个决策j = sum[j'],那么j就是没用的。即维护一个sum[j]递增序列。然后每次可以二分查找,但是这里有个特点就是要得到最近的,可以同时维护一个left指针,left指针用于跟进更...
分类:
其他好文 时间:
2014-05-15 03:20:26
阅读次数:
303
求一个数的开平方,方法有很多,最简单的方法就是二分法,再上一个档次是牛顿迭代法,还有更上档次的算法涉及到更高深的数学知识。这里只是尝试这两种方法。
1、二分法求平方根,直接上代码。 1 /*****************************************************...
分类:
其他好文 时间:
2014-05-14 06:50:12
阅读次数:
312
题目链接: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