2370 小机房的树 //讲真我觉得这题面有点恶心QAQ 大体思路:树上的最短路径一定经过两点lca, 预处理一个dis数组, 存每个点到根节点的距离, 两点(x, y) 之间的距离即为dis[x] + dis[y] - 2*dis[lca] ; 然后倍增求lca即可,dis数组在预处理每个点深度的 ...
分类:
其他好文 时间:
2018-10-15 12:15:36
阅读次数:
135
Qtree1 树剖裸题 注意把边权移到深度较深的点上,树剖跳的时候不要将LCA的答案统计上就行了 Qtree3 树剖裸题+1 将对应白点的叶子节点的值设为INF,黑点的叶子节点的值设为自己的编号,线段树维护$min$即可 ...
分类:
其他好文 时间:
2018-10-14 13:55:48
阅读次数:
122
最近公共祖先, 树上倍增,LCA, fa [ i ] [ j ] 表示 i 节点向上 2j 的祖先 很像dp, k 属于 [ 1 , log ( n ) ] ,f [ x ][ k ] = f [ f [ x ] [ k-1 ]] [k-1] 算lca时, 先不妨设 d [ x ] >= d [ y ...
分类:
其他好文 时间:
2018-10-12 23:37:31
阅读次数:
194
思路 运用树上倍增法可以高效率地求出两点x,y的公共祖先LCA 我们设f[x][k]表示x的2k辈祖先 f[x][0]为x的父节点 因为从x向根节点走2k 可以看成从x走2k-1步 再走2k-1步 所以对于1≤k≤logn 有f[x][k]=f[f[x][k-1]][k-1] (类似二分思想) 预处 ...
分类:
其他好文 时间:
2018-10-11 23:47:27
阅读次数:
545
题意 ~~[题目链接]~~这怎么发链接啊。。。。。 有$n$张符卡排成一个队列,每张符卡有两个属性,等级$li$和伤害$di$。 你可以做任意次操作,每次操作为以下二者之一: 把队首的符卡移动到队尾。 使用队首的符卡,对敌人造成$d_i$点伤害,并丢弃队首的$l_i$张符卡(包括你所使用的符卡)。如 ...
分类:
其他好文 时间:
2018-10-11 20:07:04
阅读次数:
145
题目描述 欢乐岛上有个非常好玩的游戏,叫做“紧急集合”。在岛上分散有N个等待点,有N-1条道路连接着它们,每一条道路都连接某两个等待点,且通过这些道路可以走遍所有的等待点,通过道路从一个点到另一个点要花费一个游戏币。 参加游戏的人三人一组,开始的时候,所有人员均任意分散在各个等待点上(每个点同时允许 ...
分类:
其他好文 时间:
2018-10-11 00:03:49
阅读次数:
141
题意 分析 对一个(s,t)查询,令f=lca(s,t),则操作可化为(s,f),(f,t)。 考虑观察到的情况,若x在s到t的路径上,且x观察到,则 $$ \textrm{dep}_s \textrm{dep}_x=w_x\\ \textrm{dep}_s=\textrm{dep}_x+w_x $ ...
分类:
其他好文 时间:
2018-10-10 23:46:48
阅读次数:
221
250 给一个字符串 要求从一种形式换成另一形式 500 一道惊险刺激的好题 可惜就是数据小了点 所以直接枚举答案就能过 这套比赛Div.1的600分题就是它的加强版. c++ class NarrowPassage2Easy { public: int count(vector size, int ...
分类:
其他好文 时间:
2018-10-10 21:50:30
阅读次数:
124
贪心思想。将a排序后,对于每一个a,找到对应的删除m个后最小的b,每次更新答案即可。 如何删除才是合法并且最优的?首先,对于排了序的a,第$i$个那么之前就应该删除前$i-1$个a对应的b。剩下$m-i+1$可以删,那么在剩下的b中查找第$m-i+2$小即可。每次做完就删除当前a对应的b。 注意离散 ...
分类:
其他好文 时间:
2018-10-10 20:12:44
阅读次数:
163
LCA问题算是一类比较经典的树上的问题 做法比较多样 比如说暴力啊,倍增啊等等 今天在这里给大家讲一下tarjan算法! tarjan求LCA是一种稳定高速的算法 时间复杂度能做到预处理O(n + m),查询O(1) 它的主要思想是dfs和并查集 1.输入数据,找出根节点(或输入的)并将图存起来 2 ...
分类:
其他好文 时间:
2018-10-10 17:53:09
阅读次数:
134