算法的核心概念
small__snail__5
如果有一天您来到了这里请留下您的痕迹,欢迎各种评论,一同进步。
我愿意做一只小蜗牛,不艳羡别人的速度,而独享自己的慢慢旅程,总有一天,我也可以骄傲的告诉所有人,我虽然慢,但是我不曾放弃,人生总要坚持点什么。
展开
-
动态规划思想总结
一、dp的思想及实现方法: 动态规划是求解决策过程最优的数学方法,它的核心思想是把多阶段过程转化为一系列单阶段的问题,利用各阶段之间的关系,逐个求解。二、动态规划大的分类:(1)线性动规;(2)区域动规;(3)树形动规;(4)背包动规。三、动态规划的概念、意义 动态规划程序设计是对解最优化问题的一种途径、一种方法,而不是一种特殊算法。不像搜索或数值计算那样,具有一个标准的原创 2016-07-30 17:00:44 · 1717 阅读 · 0 评论 -
搜索算法描述
一、搜索过程搜索算法实际上是根据初始条件和自定义的一种搜索规则构造一颗“解答树”并寻找符合目标状态的节点的过程。所有的搜索算法从最终的算法实现上来看,都可以划分成两个部分——控制结构(扩展节点的方式)和产生系统(扩展节点),而所有的算法优化和改进主要都是通过修改其控制结构来完成的。其实,在这样的思考过程中,我们已经不知不 觉地将一个具体的问题抽象成了一个图论的模型——树,即搜索算法的使用第原创 2016-07-29 17:39:51 · 730 阅读 · 0 评论 -
快速幂模板
long long quickmod(long long a,long long b,long long m) { long long ans = 1; while(b)//用一个循环从右到左便利b的所有二进制位 { if(b&1)//判断此时b[i]的二进制位是否为1 { ans = (ans*a)%m原创 2016-10-12 21:39:44 · 244 阅读 · 0 评论 -
奇偶剪枝
奇偶剪枝是数据结构中剪枝的一种小技巧。(参考百度百科:点击打开链接)做题中若从题中取得起点(sx,sy),终点(ex,ey),且给定t步必须到达终点,则需要用到奇偶剪枝来避免超时。这里有个通用模板abs(ex-sx)+sbs(ey-sy),可计算起点到终点的最短步数。这里并附一个相关的题的链接点击打开链接。原创 2016-09-30 10:45:47 · 452 阅读 · 0 评论 -
欧几里得求最大公约数算法(辗转相除)
/*辗转相除*/#include #include using namespace std;int Gcd(int a, int b){ int r = a % b; while(r != 0){ a = b; b = r; r = a%b; } return b;}int main(){原创 2017-02-28 17:12:18 · 318 阅读 · 0 评论 -
背包问题详解
P01: 01背包问题 这是最基本的背包问题,每个物品最多只能放一次题目有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。基本思路这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。用子问题定义状态:即f[i][v]表示前转载 2017-03-02 18:43:48 · 232 阅读 · 0 评论 -
stl函数之lower_bound 与 upper_bound
函数lower_bound()在first和last中的前闭后开区间进行二分查找,返回大于或等于val的第一个元素位置。如果所有元素都小于val,则返回last的位置举例如下:一个数组number序列为:4,10,11,30,69,70,96,100.设要插入数字3,9,111.pos为要插入的位置的下标则pos = lower_bound( number, number + 8,原创 2017-03-05 14:42:14 · 385 阅读 · 0 评论 -
double与float表示范围与精度
/**一直对float与double有些模糊看到一个比较好的记下来了,原地址:http://www.cnblogs.com/BradMiller/archive/2010/11/25/1887945.html*/1. 范围 float和double的范围是由指数的位数来决定的。 float的指数位有8位,而double的指数位有11位,分布如下: float: 1bit(符号位) 8bit...转载 2018-04-15 10:12:23 · 343 阅读 · 0 评论 -
关于struct 与 typedef struct
在以前学c语言时候用struct时是这样的:#include <stdio.h>#include <stdlib.h>struct node{ int a;};int main(){ node b; return 0;}c语言规定要用struct node b;来声明一个对象,或者如下:#include <stdio.h>...原创 2018-04-19 11:00:00 · 371 阅读 · 0 评论