
搜索算法
文章平均质量分 62
崔才进
这个作者很懒,什么都没留下…
展开
-
搜索算法 problem(1001)
1.简明题意这个题的意思就是输入一个y求8*x^4 + 7*x^3 + 2*x^2 + 3*x + 6 == Y在0~100之间的解2.解题思路利用二分方法求出这个方程的极值点,然后带入原方程就可以3.感想求一个方程利用程序就可以求出来解,不论方程多复杂4.AC代码#include#include#includeusing namespace std;const原创 2016-04-23 13:43:55 · 237 阅读 · 0 评论 -
搜索算法 problem(1009)
1.简明题意就是我们平时玩的连连看的游戏规则,刚开始用的广搜,刚开始的剪枝不高效导致爆掉队列,使得内存超限,后来发现,bfs先遍历的点不一定是弯数少的点,这样的话如果不专门来更新的话,就会出现运行结果跟搜索顺序有关,是左上右下还是左下右上等等序列2.解题思路因为至多两个弯,而数据量是1000*1000的,用dfs搜索的时候,只要找到合法解就行,不需要找弯数最少等最优情况,所以只要找原创 2016-04-24 23:24:14 · 265 阅读 · 0 评论 -
搜索算法 problem(1017)
1.简明题意大家一定觉的运动以后喝可乐是一件很惬意的事情,但是seeyou却不这么认为。因为每次当seeyou买了可乐以后,阿牛就要求和seeyou一起分享这一瓶可乐,而且一定要喝的和seeyou一样多。但seeyou的手中只有两个杯子,它们的容量分别是N 毫升和M 毫升 可乐的体积为S (S2.解题思路找了很久规律还是无果(其实肯定有的),还是暴力搜索吧,对于三个容器,用一个结构题存原创 2016-04-24 23:15:28 · 274 阅读 · 0 评论 -
搜索算法 problem(1005)
1.简明题意检测汽车拐弯的时候是否会碰到街道2.解题思路、汽车拐弯问题,给定X, Y, l, d判断是否能够拐弯。首先当X或者Y小于d,那么一定不能。其次我们发现随着角度θ的增大,最大高度h先增长后减小,即为凸性函数,可以用三分法来求解。这里的Calc函数需要比较繁琐的推倒公式:s = l * cos(θ) + w * sin(θ) - x;h = s * tan(原创 2016-04-23 22:48:28 · 343 阅读 · 0 评论 -
搜索算法 problem(1008)
1.简明题意一个人在n次中可以猜到的最大数2.解题思路通过寻找规律我们可以发现这次猜的数是上一次猜的2倍加一3.AC代码#includeusing namespace std;int guessNumber(int m){ int number; if (m == 1) { number = 1; } else {原创 2016-04-23 22:41:50 · 238 阅读 · 0 评论 -
搜索算法 problem(1014)
1.简明题意有一个特别的电梯,第i层有一个对应的数字ki, 对于第i层按上升键up可升上到i+k[i]层,按下降键down到达i-k[i]层,到达的楼层最高不能超过n层,最低不能小于1层。给你一个起点A和终点B,问最少要按几次上升键或者下降键到达目的地。2.解题思路把每一层都看成一个节点,问题就可以变成求起点到终点的最短路径问题。3.AC代码 #include原创 2016-04-23 22:36:18 · 240 阅读 · 0 评论 -
搜索算法 problem(1013)
1.简明题意有一个特别的电梯,第i层有一个对应的数字ki, 对于第i层按上升键up可升上到i+k[i]层,按下降键down到达i-k[i]层,到达的楼层最高不能超过n层,最低不能小于1层。给你一个起点A和终点B,问最少要按几次上升键或者下降键到达目的地。2.解题思路把每一层都看成一个节点,问题就可以变成求起点到终点的最短路径问题。3.AC代码#include#include#d原创 2016-04-23 22:34:45 · 233 阅读 · 0 评论 -
搜索算法 problem(1003)
1.简单题意有f+1个人分n块披萨,每个人要求分得的面积一样,且披萨只能被切开而不能重新组合,求每个人能分到的最大面积v2.解题思路对于每个确定的v,可以计算出最多能满足的人数p。因此得到一个单调递减的函数关系,并且v的范围也可以确定为0~max(size(i)),i=1...n。3.AC代码#include #include #include #include #原创 2016-04-23 13:55:36 · 430 阅读 · 0 评论 -
搜索算法 problem(1002)
1.简明题意求出方程F(x) = 6 * x^7+8*x^6+7*x^3+5*x^2-y*x在0~100之间的最小值2.解题思路利用二分法对这个方程的一阶导数进行处理,得到极值点,带入原式3.感想和第一题一样4.AC代码#include#include#includeusing namespace std;double y;const double eps =原创 2016-04-23 13:49:36 · 285 阅读 · 0 评论 -
搜索总结
由于对搜索的深度搜索和广度搜索理解不深,所以做题比较少,我就说一下我在这次里学到的东西吧1.对于求解一些实际问题,当公式难以推导出来时,二分、三分法可以较为精确地求解出一些临界值,且效率也是令人满意的。2、相比于单纯的枚举算法有了一定的方向性和目标性。算法是在解的空间里,从一个状态转移(按照要求拓展)到其他状态,这样进行下去,将解的空间中的状态遍历,找到答案(目标的状态)3.广度搜索框原创 2016-04-24 23:26:33 · 385 阅读 · 0 评论