AtCoder 杂题选做

(这学期估计都打不了实时的 \(\text{ARC}\) 了,悲......

【ABC273D】LRUD Instructions

一道没什么技术含量的纯 \(\text{STL}\) 题,使用 \(\text{map}\)\(\text{vector}\),只能说放在这里警钟长鸣了。赛时只用了 \(\text{vector}\)lower_bound(),结果 \(\text{TLE}\)Editorial by en_translator.

【ARC151B】A < AP

听 TC 说初一没做出来,就来试试

题解说这是一道结论题。我自己的做法是,从 \(1\)\(n\) 遍历每个位置 \(i\),每次有:\(a_j=a_{p_j}\ (j\in [1,i)),\ a_i<a_{p_i}\),而对于 \(j\in(i,n]\)\(a_j\) 没限制。这个根据题目要求“字典序最小”的性质可以推得。我们使用并查集去维护这些数之间的等量关系,统计答案时,除了 \(p_i\)\(i\) 以外,其他的互不相干的每堆数都有 \(M\) 种取值,对于 \(a_i\)\(a_{p_i}\) 的取值,易知是 \(C_M^2\)。这样统计为什么不会重复呢?因为当且仅当在第 \(i\) 次统计时,满足\(a_j=a_{p_j}\ (j\in [1,i)),\ a_i<a_{p_i}\),故不重不漏。Submission #35753426.

posted @ 2022-10-17 21:49  pldzy  阅读(74)  评论(0)    收藏  举报