自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 贪心算法(2)

这层楼沿着走廊南北向的两边各有200个房间。最近,公司要做一次装修,需要在各个办公室之间搬运办公桌。由于走廊狭窄,办公桌都很大,走廊里一次只能通过一张办公桌。必须制定计划提高搬运效率。经理制定如下计划:一张办公桌从一个房间移到另一个房间最多用十分钟。当从房间i移动一张办公桌到房间j,两个办公室之间的走廊都会被占用。所以,每10分钟内,只要不是同一段走廊,都可以在房间之间移动办公桌。输入输入...

2019-11-01 00:23:32 133

原创 分支限界算法--最短路径问题

给定带权有向图G=(V,E),其中每条边的权是非负实数。 给定V中的一个顶点,称为源。现在要计算从源到所有其它各顶点的最短路长度,这里路的长度是指路上各边权之和。这个问题通常称为单源最短路径问题。分析算法从优先队列中取出具有最小当前路长的结点作为当前扩展结点,并依次检查与当前扩展结点相邻的所有顶点。剪枝规则:如果从当前扩展结点i到顶点j有边可达,且从源出发,途经顶点i再到顶点j相应的路径...

2019-11-01 00:17:40 1473

原创 背包问题

给定一个载重量为M的背包,考虑n个物品,其中第i个物品的重量 wi ,价值vi (1≤i≤n),要求把物品装满背包,且使背包内的物品价值最大。如果物品可以分割,则称为背包问题(贪心算法)。为方便计算,建立如下的数据结构,表示物品的参数:struct bag{int w; //物品的重量int v; //物品的价值double c; //单位重量的价值,v/w}a[1001]; //存...

2019-11-01 00:12:09 133

原创 分支限界算法(2)

例题四单源最短路径问题分支限界算法的数据结构#include#include#includeusing namespace std;class Graphic{int n;//图中顶点的个数int e;//边的数目int **adjmatrix;//邻接矩阵,存储图int *dist;//dist[n],存储单元点到其他n-1个顶点的最短路的长度int prev;//prev[...

2019-11-01 00:06:11 136

原创 分支界限算法

分支限界算法策略分支限界法常以广度优先的方式搜索问题的解空间树。在分支限界法中,每一个活结点只有一次机会成为扩展结点。活结点一旦成为扩展结点,就一次性产生其所有儿子结点。在这些儿子结点中,导致不可行解或导致非最优解的儿子结点被舍弃,其余儿子结点被加入活结点表中。此后,从活结点表中取下一结点成为当前扩展结点,并重复上述结点扩展过程。这个过程一直持续到找到所需的解或活结点表为空时为止。分支节...

2019-10-31 21:20:09 1401

原创 回溯算法

以深度优先的方式系统地搜索问题的解的方法称为回溯法。可以系统地搜索一个问题的所有解或任意解。有许多问题,当需要找出它的解集或者要求回答什么解是满足某些约束条件的最佳解时,往往要使用回溯法。回溯法的基本做法是搜索,或是一种组织得井井有条的,能避免不必要搜索的穷举式搜索法。问题的解空间应用回溯法求解时,需要明确定义问题的解空间。问题的解空间应至少包含问题的一个(最优)解。例如,对于有n种...

2019-10-31 21:13:08 274

原创 动态规划

一、动态规划的基本思想动态规划算法通常用于求解具有某种最优性质的问题。在这类问题中,可能会有许多可行解。我们希望找到具有最优值的解。基本思想是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。二、动态规划问题的特征动态规划算法的有效性依赖于问题本身所具有的两个重要性质:最优子结构:当问题的最优解包含了其子问题的最优解时,称该问题具有最优子结构性质。...

2019-10-27 21:24:40 172

原创 最小生成树

最小生成树的各种算法子图:从原图中选中一些顶点和边组成的图.生成子图:选中一些边和所有顶点组成的图.生成树:正好是一棵树的生成子图.最小生成树:权值之和最小的生成树.Prim算法复杂度:O(n^2) $$$$#includeusing namespace std;const int INF = 1e4;const int N = 100;bool s[N];int clo...

2019-10-27 21:23:20 104

原创 贪心算法

贪心算法例题基本流程:决定贪心策略->得到局部最优解->得到全局最优解最优装载问题#include<iostream>#include<algorithm>const int N=10000;using namespace std;double w[N];int main(){ double c; int n; cout...

2019-10-27 21:20:44 175

原创 分治策略

分治法的基本思想分治法的基本思想是将一个规模为n的问题分解为k个规模较小的子问题,这些子问题互相独立且与原问题相同。对这k个子问题分别求解。如果子问题的规模仍然不够小,则再划分为k个子问题,如此递归的进行下去,直到问题规模足够小,很容易求出其解为止。将求出的小规模的问题的解合并为一个更大规模的问题的解,自底向上逐步求出原来问题的解。分治法的设计思想是,将一个难以直接解决的大问题,分割成一些...

2019-10-08 21:08:47 160

原创 递归

递归的概念直接或间接地调用自身的算法称为递归算法。用函数自身给出定义的函数称为递归函数。在计算机算法设计与分析中,使用递归技术往往使函数的定义和算法的描述简洁且易于理解。递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。注意:在使用递增归策略时,必须有一个明确的递归结束条件,称为递归出口,否则将无限进行下去(死锁)。递归的缺点:递...

2019-10-08 21:08:00 76

原创 List

双向链表不提供随机存取(按顺序访问需存取的元素,O(n),),在任何位置上执行插入或删除动作都非常迅速,内部只需调整一下指针;list c0; //空链表list c1(n);list c2(n, value);list c4(c2); //建一个c2的copy链表list c5(c1.begin(),c1.end());从键盘输入10个整数,用这些整数值作为结点数据,生成一个链表...

2019-10-08 21:07:01 71

原创 STL

STL组成1)容器(Container)2)迭代器(Iterator)3)算法(Algorithm)4)函数对象Function object)5)适配器(Adaptor)6)空间配制器(allocator)容器类是容纳、包含一组元素或元素集合的对象;向量(vector)双端队列(deque)列表(list)集合(set)、多重集合(multiset)映射(map)和多重映...

2019-10-08 21:06:13 51

原创 位数问题

#includeusing namespace std;int main(){int f[1001][2],n,i,x=9;cin>>n;f[1][1]=1;f[1][0]=9;for(i=2;i<=n;i++) {if(i==n) // i是最高位x–;f[i][0]=(f[i-1][0]*x+f[i-1][1])%12345;f[i][1]=(f[i-1]...

2019-10-08 21:05:03 55

原创 数字三角形逆推法

#include #include using namespace std;const int MAXN = 1005;int A[MAXN][MAXN],F[MAXN][MAXN],N;int max(int a,int b){if(a>b) return a;return b;}int main() {int i; cin >> N;for( i = 1...

2019-10-08 21:04:16 169

原创 数字三角形顺推法

#include #include using namespace std; const int MAXN = 1005; int A[MAXN][MAXN],F[MAXN][MAXN],N; int main() { cin >> N; for(int i = 1;i <= N;i ++) for(int j = 1;j <= i;j ++) cin...

2019-10-08 21:03:29 85

原创 猴子吃桃

#include using namespace std;int main(){int f[11];f[10]=1;for(int i=9;i>=1;i–)f[i]=2*(f[i+1]+1);cout<<f[1]<<endl;return 0;}

2019-10-08 21:02:35 65

原创 汉诺塔递推算法

汉诺塔递归算法#include using namespace std;int main(){int f[1000]={0,1};int n;cin>>n;for(int i=2;i<=n;i++)f[i]=2*f[i-1]+1;cout<<f[n]<<endl;return 0;}

2019-10-08 21:01:41 302

空空如也

空空如也

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

TA关注的人

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