加载中...

摘要: https://www.acwing.com/problem/content/1520/ 思路: 先找到在一个团伙中的人(可以用树的dfs来做,也可以用并查集来做),然后遍历每一个合法的集合,找到里面的头目。 并查集的做法 #include <iostream> #include <unordere 阅读全文
posted @ 2022-08-21 19:52 英雄不问出处c 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 写的时候思路想到了,但是不怎么会维护。 这儿贴一个比较好理解的维护方式,用的双端队列。 #include<bits/stdc++.h> using namespace std; #define int long long #pragma GCC optimize(3) typedef pair<in 阅读全文
posted @ 2022-08-21 14:56 英雄不问出处c 阅读(44) 评论(0) 推荐(0) 编辑
摘要: https://www.acwing.com/problem/content/description/1638/ 思路: LCA(爬山法)+重建一个树(知道其两个排序),由于时间n可能比较大,而且这题时间限制比较紧张,所以最后离散化,尽量查询不用哈希,因为哈希的常数太大了。 #include <io 阅读全文
posted @ 2022-08-19 21:54 英雄不问出处c 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 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 阅读全文
posted @ 2022-08-19 21:21 英雄不问出处c 阅读(26) 评论(0) 推荐(0) 编辑
摘要: https://www.acwing.com/problem/content/description/1567/ 思路: 这题可以不用记忆化搜索写,也不是很烦,在这儿记忆化搜索主要是用来解决求树的深度用的。 #include <iostream> #include <cstring> #includ 阅读全文
posted @ 2022-08-19 20:44 英雄不问出处c 阅读(22) 评论(0) 推荐(0) 编辑
摘要: https://www.acwing.com/problem/content/1630/ 思路: 思路不难,按照题目意思判断即可,但是这个dfs有些难写,值得学习,特记录此题。 #include <iostream> #include <algorithm> #include <unordered_ 阅读全文
posted @ 2022-08-19 20:23 英雄不问出处c 阅读(18) 评论(0) 推荐(0) 编辑
摘要: https://www.acwing.com/problem/content/1554/ 思路: 感觉这个左旋,右旋有些抽象,不好理解记忆,硬记也不好,当整个代码不算难写,因为很多部分都是堆成的。 #include <iostream> #include <algorithm> using name 阅读全文
posted @ 2022-08-19 20:05 英雄不问出处c 阅读(12) 评论(0) 推荐(0) 编辑
摘要: https://www.acwing.com/problem/content/1611/ 思路: 由于n只有30,直接暴力枚举,虽说理论上限很高可能会超时,但是其实dfs过程中剪枝了许多。 关键在如何dfs,由于知道前序和后序,无法确定每次左右子树的长度,所以每次枚举左子树的长度,又因为总长一定,现 阅读全文
posted @ 2022-08-19 19:39 英雄不问出处c 阅读(37) 评论(0) 推荐(0) 编辑
摘要: https://www.acwing.com/problem/content/4502/ 思路: 首先要理解题目的意思,尤其是第一句话。然后分类讨论两种情况何时圆的面积最大。 代码 #include <iostream> #include <cstring> #include <algorithm> 阅读全文
posted @ 2022-08-19 18:50 英雄不问出处c 阅读(58) 评论(0) 推荐(0) 编辑