
算法设计与分析
爱的小胡
这个作者很懒,什么都没留下…
展开
-
单源最短路径-贪心算法和分支限界法
单元最短路径一、贪心法二、分支限界法一、贪心法来源:0024算法笔记——【贪心算法】单源最短路径问题二、分支限界法转载 2021-12-30 21:40:49 · 1690 阅读 · 0 评论 -
01背包问题-动态规划,回溯,分支限界
01背包问题给定 种物品和一背包。物品 的重量是wi,其价值为vi,背包的容量为 。问应如何选择装入背包的物品,使得装入背包中物品的总价值最大?1.动态规划来源:【动态规划】0-1背包问题(C++)例子:// 【动态规划】0-1背包问题#include<iostream>#include<cstring>#include<algorithm>using namespace std;#define N 100// 最大价值表,填表void原创 2021-12-30 21:01:02 · 1131 阅读 · 0 评论 -
贪心算法-最小生成树
最小生成树1.Prim算法(O(n^2))策略: 每次都选择到下一顶点权最小的边#include<iostream>#include <cstring>using namespace std;#define N 100#define Max 9999void Prim(int n,int c[][N]){ int lowcost[N],closest[N]; bool s[N]; s[1]=true; //从第一个点开始 //初始化 for原创 2021-12-30 10:01:56 · 1608 阅读 · 0 评论 -
动态规划-最长公共子序列
最长公共子序列#include<iostream>using namespace std;#define N 100int lcslength(int x[],int y[],int m,int n,int a[][N],int b[][N]){ for(int i=0;i<=m;i++) //把0设置为边界值 a[i][0]=0; for(int j=0;j<=n;j++) a[0][j]=0; for(int i=1;i<=m;i++)原创 2021-12-29 18:26:01 · 435 阅读 · 0 评论 -
分治与递归-众数问题
分治与递归-众数问题原创 2021-12-28 15:24:58 · 681 阅读 · 0 评论 -
分治与递归-整数因子分解
#include <iostream>#include<fstream>using namespace std; int solve(int n){ int i; int count = 0; if (n == 1) return 1; else for (i = 2; i <= n; i++) { if (n%i == 0) count += solve(n/i); } return count;}int main().原创 2021-12-28 15:56:37 · 489 阅读 · 0 评论 -
最大字段和-分治法和动态规划法
分治法求解时分治,[1, n]的最大子段和只可能出现在[1, n / 2]或者[n / 2 +1, n]或者起点位于[1, n / 2],后者位于[n / 2 + 1, n]。就可以直接分治最大子段和。时间复杂度O(nlog(n))。#include<iostream>using namespace std;int MaxSum(int a[],int left,int right){ int sum=0; if(left==right) sum=a[left]>0?原创 2021-12-28 19:27:12 · 537 阅读 · 0 评论