随笔分类 - 题解
摘要:赛时:一眼平衡树,不会写。 思路 模拟。 维护一个 dfs\tt dfsdfs,其中 dfs(l,r,f)\texttt{dfs(l,r,f)}dfs(l,r,f) 表示现在模拟的区间是 [l,r][l,r][l,r],正序还是倒序。 但是路途中可能会遇到括号,这时我们就要反方向模拟。 因此,我们需
阅读全文
摘要:赛时分析错并查集复杂度导致 rating\tt ratingrating 减 161616。 思路 根据样例,我们可以发现这个图可能会有许多连通块。 对于其中一个连通块分析:如果它不是一个完全连通块,那么把它变为完全连通块是最优的。 而一个完全连通块(有 nnn 个节点)有 n(n−1)2\dfra
阅读全文
摘要:思路 首先,这个题跟班花 yhb\texttt{y\red{hb}}yhb 没有关系。因为它最后建出来是一个有向图且题目与前缀有关,所以可以考虑拓扑排序。 至于求最大,贪心即可。 贪心部分 具体解释 显然的监视该人数量为 000 的人不能选。于是监视该人数量为 000 的人的监视的人就要选(一会再解
阅读全文
摘要:赛时离 AC\tt ACAC 只差一点。最可惜的一集。 思路 显然不能每一次都给现在在集合中的元素加,这样一定会 TLE\tt TLETLE。 不妨模仿 ABC346E\tt ABC346EABC346E,进行离线操作,即(iii 为当前第 iii 次操作,第 iii 次集合元素为 aia_iai
阅读全文
摘要:抽象题。 思路 显然如果这些天在这么多周里肯定不行,把 DDD 序列中的每一个元素都对 a+ba+ba+b 取模。但是,如果出现 000,把它改成 a+ba+ba+b。(好像不改也行?) 显然取完模后原序列不一定再有序了,所以排序,同时去重(方便计算)。设操作后的序列为 ggg。 接着,我们枚举 i
阅读全文
摘要:思路 一眼 dp\tt dpdp。(虽然听说前缀和也能做?) 我们设 fi,0/1f_{i,0/1}fi,0/1 表示 iii 和 i+1i+1i+1 位置都变为 0/10/10/1。 如果我们枚举 iii,再去推,显然会超时。 不如看一组样例: 01011101 如果我们把 333 和 444
阅读全文
摘要:思路 定义矩阵为 aaa。 显然不能在线处理,否则 101010^{10}1010 的复杂度一定 TLE\tt TLETLE。 考虑每一次操作所可以覆盖的格子,离线处理。 不同的列和列是互不干扰的,行同理。 行和列是干扰的,因为覆盖的是整行整列,所以它们一定互相干扰对方。如果第 iii 行(颜色为
阅读全文
摘要:题目传送门。 什么逆天翻译。翻译成了并查集板子。 如果所有点已经成了一个连通块,再加一条边一定会成为环。 这里稍微介绍一下并查集。 在初始时,我们把每一个点的祖先都设为自己;在合并时,我们只需要将一个祖先的祖先由自己改为另一个祖先;在查询时,只需查询两个点的祖先是否相同。 #include<bits
阅读全文
摘要:思路 由题面我们容易联想到链表。 但是我们显然不能直接写个链表,因为这样不仅不好查找,而且写起来也不方便。 这时我们就要使用 map,设 mpimp_impi 表示 iii 的后一个数(即后缀)。 同理 preipre_iprei 表示 iii 的前缀。 iii 表示的是数字,不是下标! 代码实
阅读全文
摘要:题目传送门。 众所周知进制的本质其实就是每一位乘几。例如十进制,114514=1×105+1×104+4×103+5×102+1×101+4×100114514=1\times10^5+1\times10^4+4\times10^3+5\times10^2+1\times10^1+4\times10
阅读全文
摘要:题目传送门。 显然,如果每一次进行操作都重新枚举,一定超时。 但是每一次操作只会对一个数修改,所以我们只需要记录一个数的改变即可。 约定 ppp 为修改前的数,qqq 为修改后的数。 若修改后 qqq 的个数为 111,则 qqq 是首次出现,答案加 111。 若修改后 ppp 的个数为 000,则
阅读全文
摘要:题目传送门。 PS:比赛时题目数据过弱,把我的错误做法放过去了,感谢@CheZiHe929 提供的 hack。 错误代码可以看这里。 思路 固定第一个立方体位置不动,那么第二个立方体三个坐标从 [−7,7][-7,7][−7,7] 枚举,第三个立方体也一样。 正确性证明 如果两个立方体完全不相交,那
阅读全文
摘要:正好要准备 GESP 四级,所以来这里看看。 题目传送门。 思路: 众所周知,在 nnn 个人中选择 mmm 个人分发同一种奖品的方案数有 CnmC_n^mCnm 种(组合的定义)。 那么,由组合数递推式(Cnm=Cn−1m−1+Cn−1mC_n^m=C_{n-1}^{m-1}+C_{n-1}^m
阅读全文
摘要:题意简述 h×wh\times wh×w 的网格,给定操作序列,任意选择起点,途中不能经过 # 点,问有多少个终点。 思路分析 每一个终点都对应一个起点有操作序列,所以可以枚举起点然后进行对操作序列的转化。 时间复杂度 O(n3)\operatorname{O}(n^3)O(n3),不会超时。 代
阅读全文
摘要:题目传送门。 思路显然。 枚举三个点,看看它们是否有两个横坐标相等且有两个纵坐标相等。如果有就统计答案。 时间复杂度 O(n3)\operatorname{O}(n^3)O(n3),可以通过本题。 #include<iostream> using namespace std; int x[105]
阅读全文
摘要:题目传送门。 一眼打表(n≤333n\leq333n≤333)。 因为观察样例 333,当 n=333n=333n=333 时,ansansans 为 121212 位,所以打 131313 位表即可。 打表程序: #include<iostream> #include<algorithm> usi
阅读全文
摘要:题目传送门。 思路 以 111 为根,将无根树变为有根树。 对于一个非 111 节点,首先我们要先消掉它的所有子节点。 但是如果要消除 111,我们可以剩下一个子节点(这样 111 也成了叶子节点)。 而剩下的子节点应该是子树大小最大的。 再来手搓一组样例: 我们看到,如果要删除 111,首先一定要
阅读全文
摘要:题目传送门。 思路 从后往前扫一遍,如果遇到怪兽就使该种类怪兽的 cntcntcnt 加 111,反之如果遇到药水且后方有该种类的怪兽等待消灭就捡起该药水并将 ansians_iansi(答案的第二行)设为 111。 如果最后还有某种怪兽等待消灭,输出 −1-1−1。 否则,再次模拟,输出 ppp
阅读全文
摘要:题目传送门。 结论:最终输出的数一定是质数。 原因:假设有一个合数成为了最终输出的结果,那么这个合数中一定有一个质因子与序列中的所有数都互质。 举个例子: 5 7 25(样例 111),对于数字 666 来说,其与该序列中的所有数都互质。 而 6=2×36=2\times36=2×3,发现 222、
阅读全文
摘要:有一定思维含量的思维题(蒟蒻想了 202020 分钟)。 至少这个难度评的比较正确。 思路 显然的在前 nnn 个数中理论上最大的公约数只会是 ⌊n2⌋\lfloor\dfrac{n}{2}\rfloor⌊2n⌋,因此 kkk 的理论上界即为 ⌊n2⌋\lfloor\dfrac{n}{2}\rfl
阅读全文