摘要:
https://www.acwing.com/problem/content/description/1638/ 思路: LCA(爬山法)+重建一个树(知道其两个排序),由于时间n可能比较大,而且这题时间限制比较紧张,所以最后离散化,尽量查询不用哈希,因为哈希的常数太大了。 #include <io 阅读全文
摘要:
https://www.acwing.com/problem/content/1625/ 思路: 注意这题dfs的写法,值得学习。 #include <iostream> using namespace std; const int N = 25; int n; int l[N], r[N]; st 阅读全文
摘要:
https://www.acwing.com/problem/content/description/1567/ 思路: 这题可以不用记忆化搜索写,也不是很烦,在这儿记忆化搜索主要是用来解决求树的深度用的。 #include <iostream> #include <cstring> #includ 阅读全文
摘要:
https://www.acwing.com/problem/content/1630/ 思路: 思路不难,按照题目意思判断即可,但是这个dfs有些难写,值得学习,特记录此题。 #include <iostream> #include <algorithm> #include <unordered_ 阅读全文
摘要:
https://www.acwing.com/problem/content/1554/ 思路: 感觉这个左旋,右旋有些抽象,不好理解记忆,硬记也不好,当整个代码不算难写,因为很多部分都是堆成的。 #include <iostream> #include <algorithm> using name 阅读全文
摘要:
https://www.acwing.com/problem/content/1611/ 思路: 由于n只有30,直接暴力枚举,虽说理论上限很高可能会超时,但是其实dfs过程中剪枝了许多。 关键在如何dfs,由于知道前序和后序,无法确定每次左右子树的长度,所以每次枚举左子树的长度,又因为总长一定,现 阅读全文
摘要:
https://www.acwing.com/problem/content/4502/ 思路: 首先要理解题目的意思,尤其是第一句话。然后分类讨论两种情况何时圆的面积最大。 代码 #include <iostream> #include <cstring> #include <algorithm> 阅读全文