摘要: 概述篇 ,即最近公共祖先,是指这样的一个问题:在一棵有根树中,找出某两个节点 和 最近的公共祖先。 可分为 在线算法 与 离线算法 在线算法: 指程序可以以序列化的方式一个一个处理输入,也就是说在一开始并不需要知道所有的输入。 离线算法: 指一开始就需要知道问题的所有输入数据,而在解决一个问题后立即 阅读全文
posted @ 2018-12-22 19:21 XiaoHuang666 阅读(262) 评论(-1) 推荐(1) 编辑
摘要: 题意描述 给你一个字符串,求所有字符的总数。 字符只包含数字,大小写字母。 分析 字符串的长度还是$\le5$的。 直接枚举就可以了。 AC代码: NOIP官方标准程序是这样的 cpp include include include int main() { freopen("title.in", 阅读全文
posted @ 2018-12-22 19:20 XiaoHuang666 阅读(324) 评论(0) 推荐(1) 编辑
摘要: "题目传送门" 题意描述 有$4 \times 4$的正方形,每个格子要么是黑色,要么是白色,当把一个格子的颜色改变(黑$\to$白 或 白$\to$黑)时,其周围上下左右(如果存在的话)的格子的颜色也被反转,问至少反转几个格子可以使$4 \times 4$的正方形变为纯白或者纯黑? 分析 对于每一 阅读全文
posted @ 2018-12-22 19:18 XiaoHuang666 阅读(186) 评论(0) 推荐(1) 编辑
摘要: 在求解除法取模问题$(a \div b) \mod m$时,我们可以转化为$[a \mod (b \times m)]\div b$ 但是如果$b$很大,则会出现爆精度问题,所以我们避免使用除法直接计算。 可以使用逆元将除法转换为乘法:假设$b$存在乘法逆元,即与$m$互质(充要条件)。 设$c$是 阅读全文
posted @ 2018-12-22 19:15 XiaoHuang666 阅读(412) 评论(0) 推荐(1) 编辑
摘要: `RMQ(Range Minimum/Maximum Query)`,即区间最值问题。 对于长度为 的数列 ,回答若干查询 `RMQ(A,i,j)(i,j &A) { int n=A.size(); for (int i=0; i 阅读全文
posted @ 2018-12-22 19:07 XiaoHuang666 阅读(340) 评论(0) 推荐(1) 编辑
摘要: 普通莫队 简介 莫队是一种基于分块思想的离线算法,用于解决区间问题,适用范围如下: 1. 只有询问没有修改。 2. 允许离线。 3. 在已知询问$[l,r]$答案的情况下可以$O(1)$得到$[l,r−1],[l,r+1],[l−1,r],[l+1,r]$的答案。 满足以上三个条件就可以在$O(n\ 阅读全文
posted @ 2018-12-22 17:53 XiaoHuang666 阅读(617) 评论(0) 推荐(1) 编辑