随笔分类 -  线段树

摘要:题目链接 题目大意 有 \(n\) 颗导弹按顺序拦截,每个导弹有高度 \(h\) 与速度 \(v\) ,要求下一颗拦截的导弹比当前速度慢且高度低,问最多可以拦截多少导弹、在所有拦截最多方案中每颗导弹被拦截的概率。 思路 首先对于 \(h\) 和 \(v\) 进行离散化,方便后面操作。 这是一个带两个 阅读全文
posted @ 2022-02-12 21:37 Last_Breath
摘要:题目链接 题目大意 给一颗 \(n\) 个节点的树,每个边上有一个守卫。有 \(m\) 个居民,每个居民有一个散步路径(两个节点的树上最短路)。一个居民高兴当且仅当他获得了一个宠物或者他散步的路径上所有的守卫都有宠物。宠物可以分配给居民或者守卫者。求最少需要几只宠物才能让所有居民高兴。输出方案。 思 阅读全文
posted @ 2021-12-11 17:17 Last_Breath
摘要:前言 题目链接:洛谷 题目链接:CodeForces 题意 有 \(n\) 个区间,每个区间为 \([x_i,x_i+t_i]\) ,有 \(m\) 个事件,事件的位置为 \(p_j\) ,每个事件会被 \(x_i+t_i\geq p_j\) 的区间中, \(x_i\) 最小的区间所处理,处理后 \ 阅读全文
posted @ 2021-07-20 11:45 Last_Breath
摘要:前言 题目链接 题意 有 \(n\) 个点,\(q\) 次连边,以及起点 \(s\) 。连边具体分三种: \(1\) \(v\) \(u\) \(w\) 从 \(v\) 到 \(u\) 连一条边。 \(2\) \(v\) \(l\) \(r\) \(w\) 从 \(v\) 向 \(l\) 到 \(r 阅读全文
posted @ 2021-05-15 13:54 Last_Breath
摘要:前言 运用算法:点双连通分量,圆方树,树链剖分,splay(可以用 multiset 维护,不知道 OI 可不可以使用,所以就用了 splay )。 题目链接。 题目大意 有 \(n\) 个点, \(m\) 条边,每个点 \(i\) 都有点权 \(w_i\) 。有两个操作: C a w: 表示 a 阅读全文
posted @ 2021-04-16 21:53 Last_Breath
摘要:前言 线段树+网络最大流的建模题。 题目链接 题目大意 最初时有 \(n\) 个 \(1\) 。给定 \(op\) 、 \(l\) ,其中, \(l\) 为操作次数上限。你有四个操作: 若 \(op=1\) ,则接下来两个整数 \(a,b\) ,表示可以将 \(a\) 变为 \(b\) 。 若 \( 阅读全文
posted @ 2021-04-02 22:36 Last_Breath
摘要:前置知识 线段树 \(and\) 树上基本操作 定义 几个在树链剖分很重要的概念。 重儿子 对于一个父节点,含有节点数最多的儿子称为重儿子。但重儿子只有一个,若满足条件的儿子有多个,则指定其中任意一个儿子为重儿子。 轻儿子 对于一个父节点,除了重儿子以为,其余的都称为轻儿子。 重边 由父节点与重儿子 阅读全文
posted @ 2021-03-06 22:50 Last_Breath
摘要:前言 本文例题链接。 定义 在一个笛卡尔坐标系内,用一根无限长线在此坐标系内扫描,这根线就叫做扫描线,通俗易懂。 通常情况下,在坐标系内确定一条线段需要两个端点。但在特殊情况下,如该直线平行于 \(y\) 轴,只需要三个信息来确定:端点的纵坐标,任意一点的横坐标。 即是: struct Scan_L 阅读全文
posted @ 2020-12-15 19:39 Last_Breath