Evanyou Blog 彩带

02 2019 档案

摘要:"传送门啦" 思路: $ Lca $ 这个题要求这个显而易见吧。但是难就难在怎么在树上利用 $ Lca $ 去解决三个点的问题。 首先明确三个点两两的 三个 $ Lca $ 中有一对是相等的,我们也会发现这个相同的 $ Lca $ 肯定是深度最小的一个 $ Lca $ 。可以动手画一下图试试。 同样 阅读全文
posted @ 2019-02-28 21:37 Stephen_F 阅读(182) 评论(0) 推荐(0)
摘要:"传送门啦" 思路: 开始不肿么容易想到用倍增,但是想到需要求 $ Lca $ ,倍增这种常数小而且快的方法就很方便了。求 $ Lca $ 就是一个最普通的板子。那现在考虑怎么求题目中的结果。 树上差分可能听起来很高大上,但是前缀和并不陌生,树上差分就理解成树上前缀和就好了: $ sum[u] + 阅读全文
posted @ 2019-02-28 20:14 Stephen_F 阅读(218) 评论(0) 推荐(0)
摘要:"传送门啦" 思路: dfs做法: 详细地说,这个做法包含两步: 1.从任意节点出发,通过 $ DFS $ 对树进行一次遍历,求出与出发点距离最远的节点记为 $ p $ 2.从节点 $ p $ 出发,通过 $ DFS $再进行一次遍历,求出与 $ p $ 距离最远的节点,记为 $ q $ 。 从 $ 阅读全文
posted @ 2019-02-26 21:53 Stephen_F 阅读(201) 评论(0) 推荐(0)
摘要:"传送门啦" 思路: 那么从 $ A $ 到 $ B $ 可以分解成 先从 $ A $ 到 $ X $ 再从 $ X $ 到 $ B $ 。。。 另一个同理 假设能相遇 那么 要么在 $ A $ 到 $ X $ 的过程 $ A,B $ 相遇 要么在 $ X $ 到 $ B $ 的过程 $ A,B $ 阅读全文
posted @ 2019-02-26 19:23 Stephen_F 阅读(220) 评论(1) 推荐(1)
摘要:"传送门啦" 思路: $ f[i][j] $ 表示从 $ i $ 开始,包含 $ 1 include include include include define re register using namespace std ; int n , m , a[100005] , l , r ; in 阅读全文
posted @ 2019-02-21 22:32 Stephen_F 阅读(152) 评论(0) 推荐(0)
摘要:"传送门啦" 只需记录满足条件的一个区间的初始端点 $ (head, tail) $ ,不断删掉左端点 $ head $ ,不断更新右端点 $ tail $ ; 开一个 $ vis[] $ 记录一下每幅画出现的次数, 删除左端点时,判断一下左端点对应的这幅画是否在 $ [ head+1, tail 阅读全文
posted @ 2019-02-21 20:38 Stephen_F 阅读(175) 评论(0) 推荐(0)
摘要:"传送门啦" 以最大值为例,既然我们想要保证队列开头为答案,那么我们就要保证每次更新使最大值一直放在队列。那么如果存储的最大值该弹出了怎么办呢?我们只需要记录下每个元素的位置,判断是否在区间内即可。 队头弹出后,第二位就变成了队头,我们就要保证这个数现在是区间内最大。那么是不是说,我们需要将这个长度 阅读全文
posted @ 2019-02-21 19:45 Stephen_F 阅读(140) 评论(0) 推荐(0)