07 2015 档案

摘要:并查集专题训练地址,注册登录了才能看到题目并查集是一个树形的数据结构, 可以用来处理集合的问题, 也可以用来维护动态连通性,或者元素之间关系的传递(关系必须具有传递性才能有并查集来维护,因为并查集有压缩路径)。用并查集来维护元素之间关系的传递, 那么元素与元素之间就有一个权值(带权并查集),那么当路... 阅读全文
posted @ 2015-07-31 20:19 justPassBy 阅读(397) 评论(0) 推荐(0)
摘要:生成树专题地址uvalive3887给定一个带权的无向图,求得一棵最小生成树,是的树中的最大边权-最小边权的差值最小分析:当确定一个最小边时(其他的边的权值都比他大),那么之后按照kruskal算法得到的最小生成树,此时得到的最小生成树的最大权值也肯定是最小的,因为是kruskal是按照贪心来选边的... 阅读全文
posted @ 2015-07-30 09:07 justPassBy 阅读(244) 评论(0) 推荐(0)
摘要:回路性质:如果C是图G上的任意回路, e是回路上权值最大的边, 那么生成树肯定不包含e, 因为选其他的边,明显更优增量最小生树, 有m条边,每次加入一条边,如果能形成树,求出最小的生成树,思路: 如果暴力求解,那么要求m遍最小生成树, 时间复杂度是 m*m*logm 那么根据回路性质, 一棵树加... 阅读全文
posted @ 2015-07-29 20:07 justPassBy 阅读(258) 评论(0) 推荐(0)
摘要:uvaLive5713修建道路使得n个点任意两点之间都可以连通,每个点有都有一定的人口,现在可以免费修一条道路,A是免费修的道路两端结点的人口之和, B的其它不是免费修道路的长度的总和要求的是A/B的最短值。B其实就是最小生成树删除一条边只有的权值之和B。 只要我们知道生成树上任意两点之间的最长边,... 阅读全文
posted @ 2015-07-27 20:11 justPassBy 阅读(214) 评论(0) 推荐(0)
摘要:将无向图变为点-双连通的图 定义:点-双连通指的是任意两个之间存在至少两条点不重复的路径 分为两种情况, 一种是连通图,一种是非连通图 ①连通图 首先,找出图中的所有点-双连通分量,然后将该分支缩成一个点, 因为双连通分量内部肯定不用考虑的。 只需要考虑双连通分量与外部的其它结点... 阅读全文
posted @ 2015-07-26 17:27 justPassBy 阅读(1781) 评论(0) 推荐(1)
摘要:一直不明白为什么概率是正推,期望是逆推。 现在题目做多了,慢慢好像有点明白了poj2096收集bug, 有n个种类的bug,和s个子系统。 每找到一个bug需要一天。要我我们求找到n个种类的bug,且在每个系统中都找到一个bug的期望天数设dp[i][j] 为找到i个种类的bug和在j个系统中找到b... 阅读全文
posted @ 2015-07-18 17:44 justPassBy 阅读(527) 评论(0) 推荐(0)
摘要:划分树是保存了快速排序的过程的树,可以用来求静态第k小的数如果,划分树可以看做是线段树,它的左孩子保存了mid-L+1 个 小于等于 a[mid] 的数字, 右孩子保存了 R-mid个大于等于a[mid]的数字 数组a是排序过后的数组,而划分树保存的是原数组的数据,划分树的构造就是将上一层[l,r... 阅读全文
posted @ 2015-07-15 11:22 justPassBy 阅读(294) 评论(0) 推荐(0)
摘要:可持久化数据结构介绍可持久化数据结构是保存数据结构修改的每一个历史版本,新版本与旧版本相比,修改了某个区域,但是大多数的区域是没有改变的,所以可以将新版本相对于旧版本未修改的区域指向旧版本的该区域,这样就节省了大量的空间,使得可持久化数据结构的实现成为了可能。如下图,就是可持久化链表插入前插入后尽可... 阅读全文
posted @ 2015-07-15 10:35 justPassBy 阅读(257) 评论(0) 推荐(0)
摘要:给定ai,bi, ci 表示区间[ai,bi]内至少有ci个点, 要求对于所有给定的ai,bi,ci, 至少多少个点才能满足题目的条件重做这一题学到的一点是, 可以设变量来表示一些东西,然后才能找出约束的条件, s[i]表示区间0到i内有多少个点, 那么s[bi] - s[ai-1] >= ci 就... 阅读全文
posted @ 2015-07-15 09:00 justPassBy 阅读(193) 评论(0) 推荐(0)
摘要:给我们n座房子,房子的高度各不相同, 从最低的房子开始, 每次跳到更高的房子, 跳n-1次最能跳到最高的房子了,但是每次跳跃的距离不能超过d将这些房子在一维的方向上重新摆放(但是保持输入时的相对位置不变) , 使得最矮的房子和最高的房子水平距离最大将房子的坐标设为xi, n个变量, 和2(n-1)个... 阅读全文
posted @ 2015-07-14 19:47 justPassBy 阅读(366) 评论(0) 推荐(0)
摘要:如果,上面的图,如果用dij算法,那么dist[4] = 4, 是得不到正确的结果的, 这个因为dist[3]先被确定是最小,然后用来更新dist[4]但是存在负权,使得dist[3]更小,但是我们已经把结点3标记为不可用了(vis[3] = true), 所以存在错误如何使得使得结点3可用呢? 我... 阅读全文
posted @ 2015-07-14 19:34 justPassBy 阅读(279) 评论(0) 推荐(0)
摘要:给定一棵树,初始时树为空操作1,往某个结点注水,那么该结点的子树都注满了水操作2,将某个结点的水放空,那么该结点的父亲的水也就放空了操作3,询问某个点是否有水我们将树进行dfs, 生成in[u], 访问结点u的时间戳,out[u],离开结点u的时间戳每个结点的in值对应在线段树中的区间的一点那么对于... 阅读全文
posted @ 2015-07-06 00:58 justPassBy 阅读(336) 评论(0) 推荐(0)
摘要:这题同样是要将边权下放到点这题要注意的是negate询问,是将权值取反,因为是区间修改,要用到laze标记但是要注意的是,如果有标记下放的时候,如果下边已经有标记了, 那么就是取反,再取反, 所以只要将标记去除就行了就因为这个wa了好几发同时,线段树也要维护一个最小值,因为取反之后,最小值就变成最大... 阅读全文
posted @ 2015-07-06 00:47 justPassBy 阅读(438) 评论(0) 推荐(0)
摘要:树链剖分后要处理的是边的权值,而不是点的权值,但是只要边权下放到点,就可以了如图但是问题是,求图4->5路径的权值之和, 那么就会把点3给算进去那么就要减去,或者干脆不加进去有两种方法 1 #include 2 #include 3 #include 4 #include 5 #i... 阅读全文
posted @ 2015-07-06 00:39 justPassBy 阅读(191) 评论(0) 推荐(0)
摘要:bestcoder round#45 1003 题,给定两个点,要我们求这两个点的树上路径所经过的点的权值是否出现过奇数次。如果是一般人,那么就是用lca求树上路径,然后判断是否出现过奇数次(用异或),高手就不这么做了,直接树链剖分。为什么不能用lca,因为如果有树退化成链,那么每次询问的复杂度是O... 阅读全文
posted @ 2015-07-06 00:00 justPassBy 阅读(301) 评论(0) 推荐(0)
摘要:B题给我们n,m , m表示茶壶的容量接下来2*n个数字,表示茶杯的容量,将这些茶杯分给n个男孩和n个女孩可以倒x毫升的茶水给每个女孩,那么就要倒2x毫升的茶水给男孩,当然了,茶杯要装的下,且茶壶的水足够多问最多能倒多少毫升?思路:将茶杯按容量从下到大排序,那么前n个茶杯一定分给女孩,后n个茶杯分给... 阅读全文
posted @ 2015-07-01 09:34 justPassBy 阅读(307) 评论(0) 推荐(0)