自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 资源 (1)
  • 收藏
  • 关注

原创 红黑树详解

红黑树详解红黑树的详解定义定理插入删除1.定义节点是红色或黑色。根节点是黑色。每个叶节点是黑色的(这里的叶节点是指NULL节点,并不是真正意义上的叶节点)。(注意在已下讨论中我们可能不会过多的关注NULL节点,)每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径5. 上不能有两个连续的红色节点,或者理解为红节点不能有红孩子)从任一节点到其每个叶子的所有路径都包...

2019-10-13 11:56:38 265

原创 如何理解秩

秩说到秩,那么先从极大无关向量组说起,极大无关向量组定义如下:一个向量组的a1,a2,...,ama_1,a_2,...,a_ma1​,a2​,...,am​ 的部分组**aj1,aj2.....,ajra_{j1},a_{j2}.....,a_{jr}aj1​,aj2​.....,ajr​**成为这个向量组的一个极大线性无关组,如果**aj1,aj2.....,ajra_{j1},a_{...

2019-09-02 18:50:25 746

原创 Stoer-Wagner算法求全局最小割

Stoer-Wagner算法求全局最小割全局最小割可以用网络最大流来实现,也可以用Stoer-Wagner实现先看几个概念S−T割:使得顶点S与顶点TT不再连通的割,称为S−T割S−T最小割:包含的弧的权和最小的S−T割,称为S−T最小割。全局最小割:包含的弧的权和最小的割,称为全局最小割。诱导割(induced cut):令图G=(V,E)的一个割为C,则割C在图G的子图G′=(...

2019-08-30 16:59:29 407 2

原创 有上下界的网络流

有上下界的网络流给定一个网络,一个加权的有向图G,其中的每条边都有一个容量上界C。其中的两点:S只有出度没有入度,T只有入度没有出度。求S到T最大可以流过的流量,这是最大流的模型。且满足以下条件:容量限制:每条边的流量0≤f≤C0≤f≤C0≤f≤C流量平衡:任意一个点iii,∑(u,i)∈Ef(u,i)=∑(i,v)∈Ef(i,v)\sum_{(u,i)\in E}f(u,i)=\sum...

2019-08-28 18:36:02 147

原创 Dinic算法

Dinic算法Dinic算法用于求解最大网络流,改进了EK算法。EK算法求增广路的时候一次bfs只是求了一个增光路径,然后再在增广路径上进行flow[x][y]+=w,flow[y][x]−=wflow[x][y]+=w,flow[y][x]-=wflow[x][y]+=w,flow[y][x]−=w操作。但是一次只寻找一条增广路径速度有点慢,我们考虑一次寻找多条增广路径。从而诞生了Dini...

2019-08-28 15:07:11 921 2

原创 0/1分数与最优比率生成树

0/1分数与最优比率生成树分数问题为minλ=f(x)=a(x)b(x)(xϵS)min\lambda=f(x)=\frac{a(x)}{b(x)}(x\epsilon S)minλ=f(x)=b(x)a(x)​(xϵS)其中 x是向量。我们需要求向量X以使得λ\lambdaλ最小。现在看这样一个问题,一个图中,每个边都由两个权值分别是cost花费和value收益,我们现在需要让∑iϵ...

2019-08-24 09:06:50 101

原创 EM算法的推导

EM算法是用来求解极大似然函数的一种数学方法,在机器学习中的很多地方都可以见到他的影子,如GMM,HMM,LDA还有本文要讲述的PLSA等等。PLSA是一种无监督分类模型,将很多文本根据主体的不同分文别类。

2019-08-17 09:09:29 106

原创 随机过程和泊松过程

Tragin算法用于求强连通分图

2019-08-16 12:38:48 2181

原创 Tragin算法用于求强连通图详解

Tragin算法不仅可以求割点和割边(割点和割边的算法差不多),还可以求取有向图的强连通分量个数(当然可是根据问题的不同适当做出修改比如求连通分量包括那些),时间复杂度是O(N+M)主要花费在了DFS上。先说一下割点中的low[]数组,其主要作用是保存当前节点所能接触到的标号最早的节点(不会从其父节点这条路过,也就是它上一个DFS的那个节点过去),如果不太清楚割点算法的请先看看割点算法https:...

2019-08-05 21:46:21 466

原创 C++ & 问题

C++中的& 占不占用内存 如果占用的话它里面存的是什么?

2018-05-26 11:12:38 89

Tarjan.cbp

#include<bits/stdc++.h> using namespace std; #define maxn 20 int vis[maxn]={0}; int dfs[maxn]; int low[maxn]; int cnt; stack<int> s; bool instack[maxn] = {false}; void Tarjan(int cur); int Map[maxn][maxn]; int n,m; int tol,t; //6 8 //1 3 //1 2 //2 4 //3 4 //3 5 //4 1 //4 6 //5 6 int main() { cin>>n>>m; int x,y; for(int i=0;i<m;i++){ cin>>x>>y; Map[x][y]=1; } Tarjan(1); cout<<tol; return 0; } void Tarjan(int cur){ vis[cur]=1; dfs[cur] = low[cur] = cnt++; s.push(cur); instack[cur] = true; // printf("%d\n",cur); for(int i=1;i<=n;i++){ if(vis[i]!=1&&Map;[cur][i]==1){ Tarjan(i); low[cur] = min(low[cur],low[i]); } else if(instack[i]&&Map;[cur][i]==1){//为了 防止有些边是别的连有通图里面的 仅仅与此点有单连同 low[cur] = min(low[cur],dfs[i]); } } if(dfs[cur] == low[cur]){ do{ t = s.top(); s.pop(); instack[t]=false; }while(t!=cur); tol++; } }

2019-08-05

空空如也

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

TA关注的人

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