二分查找中的死循环

二分算法是我们经常会用到的一个算法。它是分治法的一个应用。不过,虽然他写起来貌似很简单,但是却很容易写错。下面我们讨论一下二分的死循环问题。(这里讨论的是整数的二分问题,浮点数的二分不容易死循环) 1.查找的元素确定,值唯一或者不存在         这种情况等下,我们的流程分为三个分支:(...

2014-09-13 17:35:37

阅读数:2203

评论数:2

卡特兰数(Catalan UVa 991 10303 10007 1478)

一、介绍         卡塔兰数是组合数学中一个常在各种计数问题中出现的数列。以比利时的数学家欧仁·查理·卡塔兰(1814–1894)命名。         历史上,清代数学家明安图(1692年-1763年)在其《割圜密率捷法》最早用到“卡塔兰数”。         卡特兰序列的前11项为:1...

2014-09-12 17:17:58

阅读数:1456

评论数:2

zoj 1245 - Triangles

题目:找到所给的图形中的最大三角形。

2014-09-30 17:29:34

阅读数:695

评论数:0

zoj 3034 - The Bridges of Kolsberg

题目:在河两端有两排服务器,现在要把河两边相同的品牌型号的机器连起来,每个电脑有个值,            每个机器只能与另一台机器链接,并且不同的链接不交叉,现在要求链接的电脑总之最大。 分析:dp,最大公共子序列,字符串。还要加一个字符串处理。 说明:(2011-09-19 11:08...

2014-09-30 17:02:38

阅读数:619

评论数:0

zoj 2068 - Chopsticks

题目:很多人在一起吃饭,有两组单支的筷子,定义badness为一对筷子长度差的平方,求最小的badness和。 分析:dp,最大公共子序列类似物。              这里利用数学关系找到一个结论:               a              所以最优解一定不会交叉,...

2014-09-30 16:48:37

阅读数:641

评论数:0

UVa 750 - 8 Queens Chess Problem

题目:计算一定经过给定点的八皇后。 分析:搜索。因为八皇后只有92组解,直接计算出92组解,然后查询输出即可。             这里我使用了位运算来计算八皇后,减少代码量。             先考虑一个皇后的影响,每次下一层攻击的点和上一次的关系如下:            ...

2014-09-30 16:12:59

阅读数:3111

评论数:0

UVa 10190 - Divide, But Not Quite Conquer!

题目:给你一个等比数列的首项和公比的倒数,如果尾项是1输出这个数列,否则输出Boring!。 分析:数学题。按照题目要求数列是递减的,所以公比的倒数一定要大于1,即m > 1。             然后在附加一个条件n  > m判断位数是否为1即可。 说明:这种卡题意的题目好...

2014-09-30 15:58:11

阅读数:4357

评论数:0

UVa 10170 - The Hotel with Infinite Rooms

题目:求从s开始的递增序列(每次加1),求出他们加和不小于D的那个最后的加数。 分析:数学题,分治。s + s+1 + ... + n = n*(n+1)/2 - s*(s-1)/2 = (n+s)*(n-s+1)/2。              直接二分答案即可(二分范围0~10^8)。 ...

2014-09-29 18:05:01

阅读数:1857

评论数:0

zoj 3017 - Extreme Gameplay

题目:最短路+DP  描述:用 M 个城堡,每个城堡有 N的连续的房间,每次             可以消耗一定的魔法在不同的城堡之间的同一编号的房间穿梭,              或者消耗一定的时间走向本城堡的下一个地点,求从 1号城堡             的 1号房间出发,到达任意第 ...

2014-09-28 23:52:04

阅读数:455

评论数:0

zoj 1880 - Tug of War

题目:二维01背包。 分析:因为必须放在两个组中的一组,直接背包所有可到状态,             取出相差不超过 1的最接近 sum/2的值即可。  说明:430ms。。。好慢啊。。。  #include #include #include int f[ 52 ][ 22501 ]...

2014-09-28 23:48:54

阅读数:862

评论数:0

UVa 1330 - City Game

说明:注意数据读入格式。 #include #include #include char Maps[1003][1003]; int MaxH[1003][1003]; int L[1003],R[1003]; int MUQ[1003]; int main() { int...

2014-09-27 21:36:38

阅读数:702

评论数:0

UVa 11934 - Magic Formula

题目:计算f(x)= ax^2 + bx + c 当 x取1,..,

2014-09-27 21:18:47

阅读数:504

评论数:0

zoj 2189 - Exact Change Only

题目:给你几种不同面值的货币,

2014-09-27 20:58:18

阅读数:925

评论数:0

UVa 442 - Matrix Chain Multiplication(zoj 1094)

题目:给你一些矩阵,以及他们饿运算

2014-09-27 20:43:54

阅读数:668

评论数:0

UVa 437 - The Tower of Babylon

题目:给你很多不同的矩形石头,yaogaiyizuita

2014-09-27 20:30:33

阅读数:627

评论数:0

zoj 2067 - White Rectangles

题目:一个由‘.’和‘#

2014-09-27 19:54:47

阅读数:680

评论数:0

zoj 1986 - Bridging Signals

题目:单调队列优化的最大上升子序列 O(NlogN)算法 分析: 说明:

2014-09-27 19:26:59

阅读数:448

评论数:0

zoj 1642 - Match for Bonus

题目:裸的最大gon 分析: 说明:

2014-09-27 19:23:19

阅读数:382

评论数:0

zoj 1163 - The Staircases

题目:整数不重复拆分。 分析:dp,01背包。zhengshuchaifen

2014-09-27 19:20:29

阅读数:579

评论数:0

zoj 1027 - Human Gene Functions

题目:计算两个DNA串的,最大权值公共子序列。

2014-09-27 19:17:50

阅读数:498

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭