自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 DFS深搜

DFS的话从1开始; 先找到其中一个相连的,2被找到了; 然后直接开始从2开始搜索,3被找到了; 然后从3开始搜索,4被找到了; 然后从4开始搜索,5被找到了; 然后从5开始搜索,忽略已经找到的所以啥都没找到; 然后没路可走了; 回到前面去再走另一条路,从4开始,6被找到了; 然后又没路可走了; 然后再回去前面4; 然后没路了 ,回去前面3; 然后一直这样。 dfs函数

2017-03-01 19:57:45 213

原创 kmp算法

// 模式串最大长度  const int MAX_P_LEN = 1024;  // next数组,next[i]代表模式串前缀pattern[0-i]的最大公共前后缀  // 同时,next[i]也代表当模式串在第i个位置字符失配时,下一次应该用来与当前位置的文本串字符继续比较的模式串字符位置  int next[MAX_P_LEN];    // 构建模式串pattern的next数组值  

2017-03-01 19:42:11 149

转载 完全背包

完全背包: 有N种物品和一个容量为V的背包,每种物品都有无限件可用。第i种物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。 完全背包按其思路仍然可以用一个二维数组来写出: f[i][v]=max{f[i-1][v-k*c[i]]+k*w[i]|0 同样可以转换成一维数组来表示: 伪代码如下:

2017-02-26 15:22:02 232

原创 二分查找

从1000000个整数中找到1234,最容易想到的方法是把他们放在a数组中再一个个去检查这些数是否为1234,。这样的方式对于寻找一个数很可行,但是如果要找100个数,就需要把a数组遍历100次。而如果先将a数组排序,就可以查找得更快。 在有序表中查找元素常常使用二分查找,有时也译为“折半查找”,二分查找的基本思路为逐渐缩小范围,它遵循分治三步法,把原序列划分成元素个数尽量接近的两个子序列,然后

2017-02-08 17:15:07 243

原创 01背包问题

01背包问题: 一个背包总容量为V,现在有N个物品,第i个 物品体积为weight[i],价值为value[i],现在往背包里面装东西,怎么装能使背包的内物品价值最大? 我们可以这样考虑:在物品比较少,背包容量比较小时怎么解决?用一个数组f[i][j]表示,在只有i个物品,容量为j的情况下背包问题的最优解,那么当物品种类变大为i+1时,最优解是什么?第i+1个物品可以选择放进背包或者不放进背包

2017-02-07 20:48:06 145

原创 动态规划之数字三角形

数字三角形  有一个由非负整数组成的三角形,第一行只有一个数,除了最下行之外每个数的左下方和右下方各有一个数。                    1                 2     3            4       5       6      7         8      9        10 从第一行数开始,每次可以往左下或右下走一格,直到走到最下行,

2017-02-07 10:28:59 259

转载 快速幂

快速幂实际上是快速幂取模的缩写,就是快速求出一个幂式的模,它比一般的算法要快而且计算范围更广。 例如,求 a^b%c=? 常规算法为: int   ans=1; for(i=1;i {        ans=ans*a; } ans=ans%a; 这个算法的时间复杂度为O(b),如果a,b过大就会导致溢出。 这里有一个公式:a^b%c=(a%c)^b%c  有了这个公式就会简便

2017-01-21 11:05:53 177

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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