黑书之1.2.6:离散数学

题目描述:

有一个函数,它的定义域:1 to N(2<=N<=100000),值域f(n)为long int(in C++)(最后证明在-2^31—2^31)。要求函数上的两个点a,b使得当x∈(a,b)函数f,在直线ab的下方,并且要求ab的倾角最大。

根据黑书所说,O(n^2)的算法确实是很容易相出,但是存在一种O(n)算法。想了许久都不能明白,中间确实想到过最终的解法,但是没有仔细想,故没有证明其正确性,最终没有相处此题。

根据网上的同道中人所述,写出算法:

从左到右扫描,O(n)的时间,计算相邻两点之间的斜率,最后选出最大斜率的一对即为所求的结果。

算法正确性证明很简单:

1.相邻亮点之间的连线一定满足任意中间的点都在直线的下方的条件。

2.倾角最大,先理解为斜率最大的意思。可以证明出结论:只要存在满足条件1的一条直线,要使其斜率最大,那么一定存在于相邻两点之间。反证法:假设存在一条直线的倾角最大,但是中间还存在其他的在该直线下方的点,那么一定可以得出存在一条倾角更大的直线,将直线下方的点与一端点的连线倾角更大,故假设错误。

由上面的证明可以得出,所要求的结果一定存在于相邻两点之间。

黑书之1.2.6:离散数学,布布扣,bubuko.com

时间: 2024-12-29 16:44:44

黑书之1.2.6:离散数学的相关文章

黑书例题 Fight Club 区间DP

题目可以在bnuoj.soj等OJ上找到. 题意: 不超过40个人站成一圈,只能和两边的人对战.给出任意两人对战的输赢,对于每一个人,输出是否可能是最后的胜者. 分析: 首先序列扩展成2倍,破环成链. dp[i][j]表示i和j能够相遇对打,那么dp[i][i+n]为真代表可以成为最后胜者. 枚举中间的k,若i和j都能和k相遇,且i和j至少一人能打赢k,那么i和j可以相遇. 复杂度o(n^3) 1 #include<cstdio> 2 #include<cstring> 3 usi

黑书贪心例题之钓鱼 poj1042:Gone Fishing

总时间限制: 2000ms 内存限制: 65536kB 描述 John is going on a fishing trip. He has h hours available (1 <= h <= 16), and there are n lakes in the area (2 <= n <= 25) all reachable along a single, one-way road. John starts at lake 1, but he can finish at a

黑书练习题 更新中

1.4.7 奇数偶数 POJ 1733 Parity game 2.5.26 Unix 插头 POJ 1087 A Plug for UNIX 黑书练习题 更新中

bzoj2539 丘比特的烦恼、黑书P333 (最优二分图匹配)

丘比特的烦恼 题目描述 Description 随着社会的不断发展,人与人之间的感情越来越功利化.最近,爱神丘比特发现,爱情也已不再是完全纯洁的了.这使得丘比特很是苦恼,他越来越难找到合适的男女,并向他们射去丘比特之箭.于是丘比特千里迢迢远赴中国,找到了掌管东方人爱情的神--月下老人,向他求教. 月下老人告诉丘比特,纯洁的爱情并不是不存在,而是他没有找到.在东方,人们讲究的是缘分.月下老人只要做一男一女两个泥人,在他们之间连上一条红线,那么它们所代表的人就会相爱--无论他们身处何地.而丘比特的爱

POJ 1042 Gone Fishing (贪心)(刘汝佳黑书)

Gone Fishing Time Limit: 2000MS   Memory Limit: 32768K Total Submissions: 30281   Accepted: 9124 Description John is going on a fishing trip. He has h hours available (1 <= h <= 16), and there are n lakes in the area (2 <= n <= 25) all reachab

黑书笔记

就从P77开始记好了.(稍微扩容) P77 排序. 1.香农信息论 基于比较的排序不可能突破O(nlogn)的复杂度限制.1) 比较一次可以得到一个bool量,最大信息熵为$\log_2{2}=1.0$bit2) 全排列的个数是$n!$级别的,唯一地确定一个全排列需要$O\left(\log_2{n!}\right)=O(n\log{n})$bit的信息熵3) 因此比较的次数不可能少于$O(n\log{n})$级别. 2.实数比较的$O(n\log{\log{n}})$时间算法. 这个的资料我没

【枚举】【lrj黑书】奇怪的问题(古老的智力题)

题目描述: 请回答下面的 10 个问题,你的回答应保证每题惟有你的选择是正确的. ⑴ 第一个答案是b 的问题是哪一个?(a )2 ( b ) 3 ( c ) 4 ( d ) 5 ( e ) 6⑵ 恰好有两个连续问题的答案是一样的,它们是:( a ) 2 , 3 ( b ) 3, 4 ( c ) 4 ,5 ( d ) 5 ,6 ( e ) 6 ,7 ⑶ 本问题答案和哪一个问题的答案相同?( a ) 1 ( b ) 2 ( c ) 4 ( d ) 7 ( e ) 6⑷ 答案是a 的问题的个数是:(

初学DP(2) 黑书中的《棋盘分割》

题意: 将一个8*8的棋盘进行如下分割:将原棋盘割下一块矩形棋盘并使剩下部分也是矩形,再将剩下的部分继续如此分割,这样割了(n-1)次后,连同最后剩下的矩形棋盘共有n块矩形棋盘.(每次切割都只能沿着棋盘格子的边进行) 原棋盘上每一格有一个分值,一块矩形棋盘的总分为其所含各格分值之和.现在需要把棋盘按上述规则分割成n块矩形棋盘,并使各矩形棋盘总分的均方差最小. 均方差,其中平均值,xi为第i块矩形棋盘的总分. 请编程对给出的棋盘及n,求出O'的最小值. 分析: 将公式化简可以得到σ2 = 1/n*

初学DP(1) 黑书中的《括号序列》

题目:括号序列 定义如下规则序列(字符串): 1.空序列是规则序列: 2.如果S是规则序列,那么(S)和[S]也是规则序列: 3.如果A和B都是规则序列,那么AB也是规则序列: 例如,下面的字符串都是规则序列: (),    [],    (()),    ([]),    ()[()]; 而这几个就不是规则序列: (,    [,    )(,    ([]; 现在给出一些有'(',')','[',']'构成的序列,请添加少量的括号,得到一个规则的序列. 分析: 用s[i],s[j]表示字符串