算法相关
我是大龙啊
这个作者很懒,什么都没留下…
展开
-
C++ STL实现全排列
next_permutation函数 组合数学中经常用到排列,这里介绍一个计算序列全排列的函数:next_permutation(start,end),和prev_permutation(start,end)。这两个函数作用是一样的,区别就在于前者求的是当前排列的下一个排列,后一...转载 2019-03-05 19:40:53 · 219 阅读 · 0 评论 -
分数背包
现在有m件物品,小偷有个最大承重为n的背包,单独的一件物品可拆分,求最后的可得的最大重量。2.首先计算每个商品的单位价值,遵循贪心策略,小偷首先尽量多地拿走单位价值最高的商品,若该商品已经全部拿走而背包未满,将在剩余的商品中选择单位价值最高的拿走,以此类推,若剩余空间不够选择的商品全部拿走,则将剩余空间全部装上该商品的等重部分(即把该商品拿走与背包空间刚好相同的重量)。Step1:首先计算每件...原创 2019-01-16 10:26:27 · 550 阅读 · 0 评论 -
0-1背包
#include "iostream"#include "vector"#include "algorithm"using namespace std;struct good{ int val = 0; int weight = 0;};void Get_Max_Weight(good* g, vector<vector转载 2019-01-15 22:13:00 · 97 阅读 · 0 评论 -
回溯法解决各种问题
一. 回溯法 – 深度优先搜素 1. 简单概述 回溯法思路的简单描述是:把问题的解空间转化成了图或者树转载 2018-12-18 17:23:34 · 5425 阅读 · 0 评论 -
《算法导论》——矩阵链乘法
《算法导论》——矩阵链乘法一、问题抛出二、何为矩阵链乘法三、动态规划法解决(PS:这里通俗一点讲就是对于一个长度为n的矩阵链,找到一个中间位置k对其进行划分,使A1…K乘以Ak+1…N的乘法次数最少,要知道前面的最少次数就需要对前面的子链继续进行划分)(对p[n+1]、m[i][j]、s[i][j]的解释)当前矩阵的个数为n,那么p[]={30,35,15,5,10,20...原创 2018-12-18 15:53:43 · 905 阅读 · 0 评论 -
《算法导论》——动态规划 钢条切割
文章转载,代码自己写的 笔记       本节给出一个寻找钢条最优切割方案的问题。公司购买长钢条,将其切割为短钢条出售。为简化分析,假设切割过程本身没有成本,并且切割下来的短钢条长度都为一英寸的整数倍。下表给出了不同长度的钢条的价格。转载 2018-12-17 17:48:50 · 219 阅读 · 0 评论 -
《算法导论》——链接法解决哈希冲突
《算法导论》——链接法解决哈希冲突教材是最好的老师!!查找的最坏时间为O(n),删除的最坏时间为O(1).#include "iostream"#define MAX 6using namespace std;struct node //节点结构体{ int value; struct node* next; struct node* pr...原创 2018-12-05 21:37:47 · 384 阅读 · 0 评论