扫描线求面积并 "P5490 【模板】扫描线" 如图,假设三个矩形,求其并集的面积。考虑将每个矩形处理成两条平行于 y 轴的线段,左边的线段标记为 +1 ,右边的线段标记为 1 ,用一个四元组$(x, y_1, y_2, k)$存下来,于是我们得到了这样一个图形: 按照四元组中 x 坐标由小到大排序 ...
分类:
其他好文 时间:
2020-03-22 01:21:27
阅读次数:
56
很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。这让很多学生很反感。不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问。当然,老师有时候需要更新某位同学的成绩。 Input本题目包含多组测试,请处理到文件结束。在每个测试的第一行,有两个 ...
分类:
其他好文 时间:
2020-03-21 21:22:47
阅读次数:
75
一开始输出的必定为n,初始时,1~pos[n]都+1,只要tr[1].v 0,那么就说明,不存在位置大于等于pos[k]的炸弹 然后依次进行修改,处理1~q[n],如果tr[1].v include include include using namespace std; typedef long ...
分类:
其他好文 时间:
2020-03-21 18:20:11
阅读次数:
58
干货! 概述 是借助可持久化线段树实现的,因为这个数据结构进行版本复制时只需新开 $\log n$ 个结点,单点查询也只需要花费 $\log n$ 的时间,非常高效。其主要思想就是先建一个线段树,动态开点,在叶子结点上维护原数组的信息。当修改某个位置的值时,只需要在这个位置所对应的叶结点的路径复制一 ...
分类:
编程语言 时间:
2020-03-21 14:28:20
阅读次数:
61
LINK: "紫荆花之恋" 每次动态加入一个节点 统计 有多少个节点和当前节点的距离小于他们的权值和。 显然我们不能n^2暴力。 考虑一个简化版的问题 树已经给出 每次求某个节点和其他节点的贡献。 不难想到我们直接把所有点的答案求出来 直接输出就好了 求所有点的答案 可以上点分治了树状数组维护一波就 ...
分类:
其他好文 时间:
2020-03-21 13:10:48
阅读次数:
62
好可恶卡常卡死我了。 T1 我们点分治。 对于每一个位置按照到点分中心的所有子树节点划分不同路径。 二分答案(最小的使得大于其的路径个数为K的长度)。 只需要给点分数据排序。 双指针扫一扫再加一个求有多少个大于等于当前二分长度的路径。 输出答案即可。 T2 维护一个线段树。 维护区间与缀和,或缀和。 ...
分类:
其他好文 时间:
2020-03-20 22:10:18
阅读次数:
65
You have N integers, A1, A2, ... , AN. You need to deal with two kinds of operations. One type of operation is to add some given number to each number ...
分类:
其他好文 时间:
2020-03-20 18:39:27
阅读次数:
72
【本文解决 区间修改/区间求和 的问题】 区间求和部分内容与上一篇内容相同,详见 "线段树点修改/区间求和" 已经知道了在O(logN)的复杂度内求N个连续数之和的做法 对于区间修改,最简单的办法就是进行多次点修改 但是多次点修改最后的时间复杂度为O(NlogN),还不及最普通的数组模拟O(n)效率 ...
分类:
其他好文 时间:
2020-03-19 19:00:09
阅读次数:
316
【本文描述高级数据结构线段树的定义】 【并解决 点修改/区间查询 的问题】 结构与定义 线段树的基本结构 由图可知,线段树的每一个节点都代表着一段区间 且同一层的节点(深度相同的节点)所表示的区间互不重叠 所有叶子节点代表的区间左边界与右边界相同(叶子节点代表单个元素) 普遍规定 如果某个 非叶子节 ...
分类:
其他好文 时间:
2020-03-18 21:57:03
阅读次数:
83
写在前面:在看这篇题解前,首先需要学会基本的树型dp是什么,推荐一道题,是本题的简单版。 传送门 本题:题目链接 这是我第一次接触最大连通子树的题。 常规的树型DP,是先dfs求取子树的最优解,再回溯更新父节点的最优解。比如构造一棵最值线段树的过程就是这样: 每一个节点的最优解只受到子节点的影响,而 ...
分类:
其他好文 时间:
2020-03-18 11:22:33
阅读次数:
53