会员
周边
众包
新闻
博问
闪存
赞助商
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
江屿
博客园
首页
新随笔
联系
管理
订阅
上一页
1
2
3
4
5
下一页
2017年5月7日
图的最小生成树——Kruskal算法
摘要: Kruskal算法 图的最小生成树的算法之一,运用并查集思想来求出最小生成树。 基本思路就是把所有边从小到大排序,依次遍历这些边。如果这条边所连接的两个点在一个连通块里,遍历下一条边,如果不在,就把这条边加入连通块,这样就可以保证生成树的边权最小。 我们使用并查集来判断两个点是否在同一个连通块里,如
阅读全文
posted @ 2017-05-07 09:01 江屿
阅读(363)
评论(0)
推荐(0)
编辑
2017年5月6日
P3258 松鼠的新家
摘要: 松鼠的新家 洛谷链接 尽管标签是省选/NOI-,但提交的通过率已经高到三分之一了。 但它仍旧是一个省选/NOI-的题。 大致题意就是按输入的顺序走一棵树,看每个节点经过多少次。问题就相当于把一条链上的所有节点权值都加一,最后统计每个点的权值。 但这样的时间复杂度比较高,所以我们可以把这条链的头节点和
阅读全文
posted @ 2017-05-06 16:42 江屿
阅读(228)
评论(0)
推荐(0)
编辑
P3398 仓鼠找sugar
摘要: 仓鼠找sugar 洛谷链接 一道提高+/省选-的题目,终于可以提高博客题目的平均难度了。。。 大致题意就是在一棵树上有两条路径,询问这两个路径是不是可以相交。 而如果两条路径相交的话,一定有一条路径a两端点的LCA在另一条的路径上,我们可以通过求路径a的LCA是不是在路径b上来求出a与b是不是相交的
阅读全文
posted @ 2017-05-06 16:07 江屿
阅读(314)
评论(0)
推荐(2)
编辑
bzoj 1787 Meet 紧急集合
摘要: Meet 紧急集合 这个题是在脖子oj(清北某奆佬给起的名字)八中oj(大视野在线评测)上的。 给出bzoj链接。 这个题还是求最近公共祖先的问题。 而该题不同于别的题,它是需要求三个点的最近公共祖先。 我们就需要求出三个点两两之间的LCA。 而这三个LCA之间,必有两个是相同的。 如果两个点相同,
阅读全文
posted @ 2017-05-06 10:15 江屿
阅读(265)
评论(0)
推荐(0)
编辑
2017年5月5日
树链剖分求LCA
摘要: 树链剖分求LCA 树链剖分需要将树的边分为重边和轻边。每个节点和他的儿子之间只能有一条重边,连接着该节点与他儿子中子树节点最大的一个。一系列连续起来的重边叫做重链,重链上的每个点的top值都是重链的顶端节点。 用树链剖分来求LCA,就需要每次比较top_x与top_y的深度,将深度较大的点变为top
阅读全文
posted @ 2017-05-05 21:10 江屿
阅读(1056)
评论(0)
推荐(2)
编辑
倍增法求LCA
摘要: 倍增法求LCA LCA(Least Common Ancestors)的意思是最近公共祖先,即在一棵树中,找出两节点最近的公共祖先。 倍增法是通过一个数组来实现直接找到一个节点的某个祖先,这样我们就可以在O(logn)的时间内求出求出任意节点的任意祖先。 然后先把两个节点中转化为深度相同的节点,然后
阅读全文
posted @ 2017-05-05 17:43 江屿
阅读(1474)
评论(1)
推荐(0)
编辑
P1364 医院设置
摘要: 医院设置 又是一道水题。 洛谷链接。 洛谷上的数据特别水,o(n^3)都能过。 当然,我是不会用那种暴力枚举的方法的。 这里要讲的是一种O(n)的做法,对于洛谷那五个数据点,会实现5个0ms。 大家可以先看一下博客——树的直径及重心,直径没必要看,主要是看重心的求法。 而这里用的是加权重心,比重心更
阅读全文
posted @ 2017-05-05 11:43 江屿
阅读(423)
评论(0)
推荐(2)
编辑
P1351 联合权值
摘要: 联合权值 然而这只是一道普及+/提高的大水题 洛谷链接 这道题是2014年提高组day1的第二题。 简单题意就是在树上每个点都有权值,相邻两点的距离为1,求距离为2的点的权值乘积的和以及最大值。 基本思路就是遍历整棵树,然后找到距离该点距离为2的点,计算距离,更新最大值和乘积和。 但这样就很慢了。所
阅读全文
posted @ 2017-05-05 09:41 江屿
阅读(256)
评论(3)
推荐(2)
编辑
2017年5月4日
树的直径及重心
摘要: 1.树的直径 树上最长的简单路径即为树的直径。 求树的直径的方法就是在树上任选一点u,求距离点u最远的点y,再求距离点y最远的点s,点y到点s的距离即为树的直径。 1 #include<cstdio> 2 #include<cstring> 3 #define N 4200 4 struct heh
阅读全文
posted @ 2017-05-04 21:05 江屿
阅读(4107)
评论(1)
推荐(5)
编辑
图的存储方式
摘要: 图的存储方式 1.邻接矩阵 邻接矩阵的二维数组表示第i个点到第j个点的权值为dis[i][j]。 实现容易,但时空复杂度都比较大,时间复杂度为O(n*n),空间复杂度为O(n*n)。 适合稠密图。 下为代码: 1 #include<cstdio> 2 #define N 4200 3 int vis
阅读全文
posted @ 2017-05-04 18:45 江屿
阅读(263)
评论(0)
推荐(1)
编辑
上一页
1
2
3
4
5
下一页
公告