搜素
搜素
阿聊
愿我千帆过尽,归来仍是少年
展开
-
hdu1710 Binary Tree Traversals【二叉搜素树】
题目题意:已知先序遍历,中序遍历,求后序遍历,主要注意输出的格式。这道题用二叉搜素树来做,二叉搜素树都满足左子树上的所有节点都比自己的小,而右子树上所有的节点都比自己大这一条件。二叉树有先序,中序,后序,这三个序列。已知先序,中序可求后序;已知后序,中序可求先序;总之一定要有中序。下面给出两种写法:#include<iostream>#include<cs...原创 2017-07-10 18:35:22 · 670 阅读 · 0 评论 -
poj 3258 3273
poj3258 题目 (最大化最小值)(最小值最大化)题意:牛要到河对岸,在与河岸垂直的一条线上,河中有N块石头,给定河岸宽度L,以及每一块石头离牛所在河岸的距离,现在去掉M块石头,要求去掉M块石头后,剩下的石头之间以及石头与河岸的最小距离的最大值。此题要求最短距离最大,对于最短距离我们知道其范围是1~L,那么可以在该单调区间内进行二分查找不断缩小范围。那么还需要一个判断函数jud...原创 2018-10-12 12:49:10 · 201 阅读 · 0 评论 -
hdu 2199 Can you solve this equation?
题目小白书上说二分搜素法的结果判定,一 .一次二分可以把区间范围缩小一半,100次循环则可以达到10^-30的精度范围。#include <cstdio>#include <cmath>using namespace std;int N,K;const int INF = 1e5+10;double num;bool C(double n){ ...原创 2018-07-21 18:00:10 · 120 阅读 · 0 评论 -
hihocoder 二分·二分答案【二分搜索,最大化最小值】 (bfs)
题目这道题做了几个小时了都没有做出来,首先是题意搞了半天都没有弄懂,难道真的是因为我不打游戏所以连题都读不懂了?反正今天是弄不懂了,过几天再来看看。。。题意:一个人从1点出发到T点去打boss,这个人有两个属性值,防御值和战斗值,这两个值成反比,为了打赢boss我们要使战斗值最大,于是乎防御值就要最低,但是也不能太低,于是乎这个界限在哪,这就是我们要求的。每条路上都有一个索敌值,防御值...原创 2018-07-19 20:31:49 · 321 阅读 · 0 评论 -
hihocoder 二分
题目一个简单的二分,只是想说明一下,如若要查找一个数组中某个数的下标可以直接用lower_bound()这个函数。只是要考虑到要查找的数不在数组中的这种情况。#include <cstdio>#include <iostream>#include <algorithm>using namespace std;const int Max = 1e...原创 2018-07-19 16:19:31 · 201 阅读 · 0 评论 -
poj 2456 Aggressive cows
题目描述农夫 John 建造了一座很长的畜栏,它包括N (2 <= N <= 100,000)个隔间,这些小隔间依次编号为x1,...,xN (0 <= xi <= 1,000,000,000).但是,John的C (2 <= C <= N)头牛们并不喜欢这种布局,而且几头牛放在一个隔间里,他们就要发生争斗。为了不让牛互相伤害。John决定自己给牛分配...原创 2018-07-19 15:35:18 · 129 阅读 · 0 评论 -
二分搜素——(lower_bound and upper_bound)
因为每个人二分的风格不同,所以在学习二分的时候总是被他们的风格搞晕。有的人二分风格是左闭右开也就是[L,R),有的人是左开右闭的(L,R]。二分的最基本条件是,二分的序列需要有单调性。下面介绍的时候用v来代表我们二分的目标,用第一个大于v,第一个大于等于v【升序】,最后一个小于v,最后一个小于等于v【降序】来描述,这里可以看到我即将要介绍的4种二分搜索。1.第一个大于等于v这就是我...原创 2018-07-19 11:08:07 · 427 阅读 · 0 评论 -
二分(搜索)查找
以为二分查找和二分搜索是两个不同的东西,但是代码咋个又这么像嘞,思路咋个都是一个的嘞,傻傻没分清楚过。区别在于对 lb 和 ub 进行赋值的时候,一个赋的是:lb=0,ub=n-1;一个赋的是:lb= -1,ub=n;因此导致对 mid 进行更新时,一个要mid+1 或者 mid-1,一个可以直接赋值mid;一个循环条件是:ub-lb>=0,一个循环条件是:ub-lb>1;总...原创 2018-07-19 09:44:15 · 1034 阅读 · 0 评论 -
开根号
法一:用二分法一个数一个数地代入,平方,再和原数比较大小,然后继续代入,直到得到十分近似的值法二:牛顿迭代法:百度百科#include <cstdio>#include <iostream>#include <cstring>#include <cmath>using namespace std;#define eps 0....原创 2018-11-19 11:06:32 · 2387 阅读 · 0 评论