摘要:
原题链接 启发式思考 替换的过程,可以看成数组 \(A\) 内部的流动,既然是流动,我们可以用图来表示这种流动 经过样例测试发现,这样的图,每个节点最多有一个入度,但可以有多个出度,很像树,但是又存在环 感知一下,每一次替换,都是父节点的值赋给子节点,因此,k次替换后,该节点的值就是第 \(k\) 阅读全文
摘要:
原题链接 题解 首先是朴素解法,每次遍历 \(n\) 然后查看 每个数的平方根是否是其前缀 时间复杂度 \(O(T\cdot n\cdot \log n)\) 这里有两个数,一个是 \(x\),即一个整数,一个是 \(y\),是 \(x\) 的平方根,因此我们可以换一个视角. 统计对于每一个整数 \ 阅读全文
摘要:
原题链接 题意 对于有相同颜色传送门的城市 \(i,j\),可以花 \(|i-j|\) 的代价从 \(i\to j\) 或 \(j \to i\) 问从城市 \(x\to y\) 的最小代价,或者报告无法到达 分析 对于无法到达的情况,很简单,用并查集维护即可 而对于可以到达的情况,我们发现,两座城 阅读全文
摘要:
原题链接 题解 什么情况下,答案为 -1 ? --两座城市没有任何直接或间接的传送门相连 所以如果我们把所有能通过传送门互相到达的城市放入一个集合,那么输出 -1 代表这两个城市不在一个集合里 不能相互到达的问题解决了,能相互到达的城市,cost 是多少? 阅读全文
摘要:
原题链接 题意 有两个数 \(a,b\) 每次可以拿走其中一个数的若干个质因子,请问恰好 \(k\) 次操作后能否使 \(a=b\) 分析 假设 \(a,b\) 最后到达的是 \(c\) ,那么 \(\frac{a}{c}\) 的质因子个数加上 \(\frac{b}{c}\) 的质因子个数一定大于等 阅读全文
摘要:
原题链接 这个题解写的很好 阅读全文
摘要:
原题链接 题解 方法一: 双重循环, \(O(n^2)\) 方法二: 顺序遍历 \(i\),然后查找目前所有比 \(a_i\) 小的数,这是一个比较经典的树状数组的运用 时间复杂度 \(P(n\log A)\) 考虑优化,由于 \(A\) 可以达到 \(1e8\) ,而 \(n\) 只有 \(4e5 阅读全文
摘要:
原题链接 题解 对于 \(a_i,b_i\),如果存在一个 \(j\),使得 \(a_j\in[a_i,b_i],b_j\notin [a_i,b_i]\),则存在交叉点 即对于 \([a_i,b_i]\) 这一匹配,其内部的点也必然一一匹配,否则存在一个匹配点在外面,会导致交叉 有点像括号匹配,我 阅读全文
摘要:
原题链接 题解 1.暴力想法:维护n个集合,每次合并,遍历两个集合,最坏时间复杂度 \(O(q\cdot n\cdot \log n)\) 2.优化想法:两个集合合并后,我们只需要查询大集合的大小,因此,我们可以只遍历两个集合中较小的那个 然后莫名发现竟然过了,我们上网查了一下,发现这种方法叫做启发 阅读全文