
算法
LZUwujiajun
这个作者很懒,什么都没留下…
展开
-
算法总结-深度优先搜索
不碰南墙不会头。 常用于给定一个序列,枚举子序列选择满足某个特征的最优子序列 有n见物品,给出重量和价值,在不超过容量V的前提下求最大价值 #include<cstdio> int n,v,max = 0; //物品件数,背包容量,最大价值 int w[10],c[10];//重量,价值 void DFS(int index,int sumW,int su...原创 2018-07-21 21:53:13 · 322 阅读 · 0 评论 -
算法总结-图的遍历
DFS #include<cstdio> #include<string> #include<vector> #include<iostream> #include<algorithm> using namespace std; int INF = 100000; int n;//顶点数 int G[1000][1000];//图...原创 2018-08-04 17:39:17 · 607 阅读 · 0 评论 -
算法总结-Dijkstra+DFS
#include <cstdio> #include <iostream> #include <algorithm> using namespace std; vector<int> pre[100]; int n,G[100][100],d[100],vis[100] = {0},s; int INF = 1e8; void dij(int...原创 2018-08-04 19:37:56 · 430 阅读 · 0 评论 -
算法总结-DP入门
一个问题必须有重叠子问题和最优子结构才可以用动态规划解决。 解决方式: 1. 递推:自底向上 2. 递归自顶向下 贪心与动态规划的区别 贪心是局部最优解,在每一次选择中,选了就不后悔。动态规划则考虑所有的子问题,选择能笑到最后的。 //数塔问题,将一些数字排成塔状,第n层有n个数字,现在从第一层走到第n层 //最后路径上最大的数字之和为多少 //用DFS做复杂度O(2^n),存在大...原创 2018-08-02 11:09:40 · 480 阅读 · 0 评论 -
算法总结-Dijkstra
邻接矩阵 #include<iostream> using namespace std; const int MAXV = 1000; const int INF = 1e7; int n,G[MAXV][MAXV],vis[MAXV] = {0},d[MAXV]; void dij(int s){ fill(d,d+MAXV,INF); d[s] = 0; ...原创 2018-09-11 15:50:33 · 254 阅读 · 0 评论 -
算法总结-背包问题
01背包 #include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;algorithm&gt; #include &lt;cstring&gt; using namespace std; //01背包 //dp[v] = max(dp[v],dp[v-w[i]]+c[i]) int main原创 2018-09-23 18:12:39 · 360 阅读 · 0 评论