01 2022 档案

摘要:复健训练了属于是)) A 考虑直接找第一个不上升的位置。如果没有就直接选最后一个数。 #include <bits/stdc++.h> using namespace std; typedef double db; #define int long long #define fi first #de 阅读全文
posted @ 2022-01-23 08:17 Refined_heart 阅读(59) 评论(0) 推荐(0) 编辑
摘要:题目链接 Solution: 首先考虑我们到底要求啥,实际就是要快速求出对于一个数 x, 所有数与它异或后的 SIM 值。 一种 naive 的想法是直接枚举 T, 显然复杂度爆炸,因为 n 太大了,是 O(2m×n) 的。 考虑把 阅读全文
posted @ 2022-01-22 15:57 Refined_heart 阅读(36) 评论(0) 推荐(0) 编辑
摘要:AT3954 [AGC023C] Painting Machines Solution: 首先可以考虑对每个数拆贡献,一个数如果有贡献显然是它自己有贡献或者排在它后面的数有贡献。 这个东西看起来就不好做。所以直接容斥掉,变成求它有多少情况不贡献。 此时当且仅当它后面的数和它自己 阅读全文
posted @ 2022-01-08 09:47 Refined_heart 阅读(53) 评论(0) 推荐(0) 编辑
摘要:回滚莫队是对付一类操作难以撤回的莫队做法。 从例题开始。 【模板】回滚莫队&不删除莫队 题目要求区间中相同数的最大坐标差,显然地这个东西撤回是很难的。 那么考虑回滚莫队是如何做这件事情的: 首先我们把询问分块,然后将询问的左端点所在块作为第一关键字,把右端点置为第二关键字。 经过上述排序后我们发现, 阅读全文
posted @ 2022-01-06 16:38 Refined_heart 阅读(159) 评论(0) 推荐(0) 编辑
摘要:CF631E Product Sum Solution: 考虑转化操作,显然有,设从 i 转移到 j,i>j 贡献则为 si1sj(ij)×ai,si=i=1nai 如果 \(i<j\ 阅读全文
posted @ 2022-01-05 17:44 Refined_heart 阅读(63) 评论(0) 推荐(0) 编辑
摘要:CPU监控 Solution: 观察到有区间加以及区间覆盖,而询问历史最大值是一个相对棘手的问题。 观察到没有区间最值操作。考虑按照时间轴来下传标记:记录 cov[0],ad[0] 表示当前的覆盖、加法标记,cov[1],ad[1] 表示自从上次下传标记以来到现 阅读全文
posted @ 2022-01-05 12:40 Refined_heart 阅读(104) 评论(0) 推荐(0) 编辑
摘要:[AGC022F] Checkers Solution: 看了题解半天之后的一种理解。 首先我们需要发现,一次操作本质上是选择两个点,把其中一个的坐标乘 1, 另一个乘 2. 那么考虑建立一个点,然后把操作的两个点向这个点连边,边权分别是 1,2, 阅读全文
posted @ 2022-01-04 13:19 Refined_heart 阅读(91) 评论(0) 推荐(0) 编辑
摘要:[AGC028D] Chords Solution: 首先要观察到,如果把连通块的最小点和最大点连起来,那么每个连通块之间必然不相交。 所以我们考虑计算当 l,r 在同一个连通块的时候有多少种情况,最后就是枚举所有对然后加起来。由于 l,r 一个最大一个小,所以 阅读全文
posted @ 2022-01-03 14:57 Refined_heart 阅读(61) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示