摘要: 树的表示方法 树的表示方法一般有三种:遍历表示法,括号序列法以及prufer数列。 1.遍历表示法 遍历表示法就是通过遍历一棵树来确定这棵树的表示方法。遍历方法有三种:先序遍历,中序遍历和后序遍历。 先序遍历:按照父节点,左子结点,右子节点来遍历(简称 头左右)。以上图为例,先序遍历表达式为1 2 阅读全文
posted @ 2017-05-04 15:59 江屿 阅读(5025) 评论(0) 推荐(0) 编辑
摘要: 树状数组 本来以为特别难呢,没想到一点都不难。 图大致就是这样,是不是很像一个树。。。 a数组是正常输入的数组,c数组就是要求的tree。 c[1]=a[1];c[2]=c[1]+a[2]; c[3]=a[3];c[4]=c[2]+c[3]+a[4]; c[5]=a[5];c[6]=c[5]+a[6 阅读全文
posted @ 2017-04-21 19:30 江屿 阅读(290) 评论(2) 推荐(1) 编辑
摘要: KM求得二分图与普通二分图的不同之处在于:此二分图的每条边(男生女生)上都附了权值(好感度)。然后,求怎样完美匹配使得权值之和最大。 这,不止一般的麻烦啊。 可以通过一个期望值来求。 大致思路就是: 每个男生女生都有期望值,男生一开始全部为0,女生一开始则是可能的最大值。 匹配的条件为男生的期望值加 阅读全文
posted @ 2017-04-21 09:30 江屿 阅读(1639) 评论(0) 推荐(0) 编辑
摘要: 二分图 这里是用匈牙利算法来求无权二分图的最大匹配问题。 题目大致: 有n个男生,m个妹子,他们之间有相互喜欢的关系。如何匹配使得相互喜欢并凑成一对的人最多。 正常的思路是使用什么增广路和交叉路,我也看不明白,但这个链接讲的比较容易懂。 大致思路就是: 1.建立一个链表。 2.遍历喜欢此男生的所有妹 阅读全文
posted @ 2017-04-20 16:22 江屿 阅读(239) 评论(2) 推荐(1) 编辑
摘要: KMP搞两个链接:11111和22222。都讲的特别清晰易懂。 再来个洛谷模板题的链接 最后是代码: 1 #include<cstdio> 2 #include<cstring> 3 int lenT,lenP,k; 4 int next[1001]; 5 char T[1000001],P[100 阅读全文
posted @ 2017-04-20 09:43 江屿 阅读(119) 评论(1) 推荐(1) 编辑
该文被密码保护。 阅读全文
posted @ 2017-04-18 15:05 江屿 阅读(115) 评论(1) 推荐(1) 编辑
摘要: tarjan求割边割点 内容及代码来自http://m.blog.csdn.net/article/details?id=51984469 割边:在连通图中,删除了连通图的某条边后,图不再连通。这样的边被称为割边,也叫做桥。割点:在连通图中,删除了连通图的某个点以及与这个点相连的边后,图不再连通。这 阅读全文
posted @ 2017-04-18 08:50 江屿 阅读(882) 评论(1) 推荐(1) 编辑
摘要: tarjan算法求LCA LCA(Least Common Ancestors)的意思是最近公共祖先,即在一棵树中,找出两节点最近的公共祖先。 这里我们使用tarjan算法离线算法解决这个问题。 离线算法,是指首先读入所有的询问(求一次LCA叫做一次询问),然后重新组织查询处理顺序以便得到更高效的处 阅读全文
posted @ 2017-04-17 15:38 江屿 阅读(11938) 评论(10) 推荐(7) 编辑
摘要: 第一篇博客,尽管园龄已经一年了。。 tarjan算法求强连通分量 有种tarjan算法是求强连通分量的。 那强连通分量是啥呢? 在有向图G中,如果两个顶点vi,vj间(vi>vj)有一条从vi到vj的有向路径,同时还有一条从vj到vi的有向路径,则称两个顶点强连通。如果有向图G的每两个顶点都强连通, 阅读全文
posted @ 2017-04-14 16:44 江屿 阅读(481) 评论(2) 推荐(2) 编辑