摘要: 欢迎来到我的博客 我是PHarr,常以PHarr这个ID在各大OJ闲逛 退役OI选手,现役ACM选手 毕业于焦作市解放区实验学校、焦作市外国语中学、焦作市第一中学、沁阳市第一中学 这个博客主要用来写写算法笔记,有时写点人生感悟 联系我 email : pharr.mx@outlook.com 荣誉墙 阅读全文
posted @ 2019-07-27 16:28 PHarr 阅读(396) 评论(0) 推荐(0) 编辑
摘要: A. All-Star 每次操作至多可以把一个点插在根上,因此选择度数最多的点插在根上,然后根据深度标记边的方向。 #include <bits/stdc++.h> using namespace std; using i32 = int32_t; using vi = vector<int>; u 阅读全文
posted @ 2024-11-25 13:10 PHarr 阅读(10) 评论(0) 推荐(0) 编辑
摘要: A. 两只脑斧 #include <bits/stdc++.h> using namespace std; using i32 = int32_t; using i64 = long long; using vi = vector<int>; using pii = pair<int,int>; i 阅读全文
posted @ 2024-11-24 13:45 PHarr 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 这道题目是比较经典的树上阶梯博弈。 设一个点的深度是\(dep_i\),如果两个点\(i,j\)满足\(dep_i\not\equiv dep_j \mod k\),则两个点对答案的影响是完全独立的。 我们可以把图拆分为\(k\)部分,并且按照原图中的祖先关系把新图连接为\(k\)棵树。对于一个点\ 阅读全文
posted @ 2024-11-14 16:11 PHarr 阅读(7) 评论(0) 推荐(0) 编辑
摘要: B. osu!mania 按照题目的公式进行计算,注意四舍五入的精度问题。 #include <bits/stdc++.h> using namespace std; using i32 = int32_t; using i64 = long long; using ldb = long doubl 阅读全文
posted @ 2024-11-13 16:27 PHarr 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 我们要选出最长的子序列,使得每一个数都是前一个数的倍数。因此自然我们可以想到选择最小值然后每次乘\(2\)。所以有 \(l\times 2^k \le r\),即\(k = \left\lfloor \log_2 \frac{r}{l}\right\rfloor\)。所以最大的集合大小就是\(k + 阅读全文
posted @ 2024-11-11 15:53 PHarr 阅读(4) 评论(0) 推荐(0) 编辑
摘要: C - easy math \[\Pi a_i \le 2024^b\\ \log_2 (\Pi 2^{k_i}) \le \log_2(2024^b)\\ \sum k_i\le b\log_2 2024 \]因此答案就是\(b = \frac{\sum k_i}{\log_2 2024}\) # 阅读全文
posted @ 2024-11-10 21:50 PHarr 阅读(19) 评论(0) 推荐(0) 编辑
摘要: A. Set 二分出最大数满足至少有\(k\)个倍数的数。 #include <bits/stdc++.h> using namespace std; using i32 = int32_t; using i64 = long long; #define int i64 using vi = vec 阅读全文
posted @ 2024-11-10 21:28 PHarr 阅读(88) 评论(0) 推荐(0) 编辑
摘要: B. Birthday Gift 把原始串的偶数位取反,题目从消除相同就可以转换为消除不同。因此只要有不同位,就一定可以消除。因此最终剩下的串一定是全 0 或者全 1。因此答案就是翻转后的 1、0 之差。我们用 2 尽可能的减少0,1 只差即可。 #include <bits/stdc++.h> # 阅读全文
posted @ 2024-11-10 14:11 PHarr 阅读(101) 评论(0) 推荐(0) 编辑
摘要: A. 爱上字典 #include <bits/stdc++.h> using namespace std; using i64 = long long; using ui32 = unsigned int; using vi = vector<int>; int main() { ios::sync 阅读全文
posted @ 2024-11-06 21:34 PHarr 阅读(57) 评论(0) 推荐(0) 编辑
摘要: C. Giving Directions in Harbin 一个简单的模拟题,主要是处理好转向。 #include <bits/stdc++.h> #define ll long long using namespace std; vector<string> dir = {"N", "E", " 阅读全文
posted @ 2024-11-03 18:38 PHarr 阅读(38) 评论(0) 推荐(0) 编辑