首页 > 其他分享 >2024.10.6训练记录

2024.10.6训练记录

时间:2024-10-06 21:49:48浏览次数:18  
标签:2024.10 set 迭代 训练 记录 递增 next 维护

下午 cf

A

到!

B

签到题,考场还是写挂了,今天码力差。
挂在while动指针的时候没有判右边界,似。唐诗程度不亚于数组开小。

C1

猜出来结论是第一次出现需要按照一开始的顺序就能过。

C2

把一开始的排列映射到[1, n]。
修改时用set动态维护每个数第一次出现的位置。
把第一次出现位置的序列也开一个set维护,那么最终要满足的条件就是在这个总的set中是单调递增的。
如何维护单调递增:因为是单点修改,可以维护set中满足s[i] < s[next(i)]的数对个数,个数为n-1时就是递增。
这个trick应该会挺泛用的。

几个实现上的注意点:
调用前驱/后继的时候让迭代器自增/自减会很麻烦,写起来不知道到底动到哪了。
可以调用函数prev()、next()。这样迭代器自己不会动。
因为执行序列中不一定每个数都会出现,一开始可以往后面插一个[1, n]防止set越界。

我实际写出来很难看就是了。怎么大家都写那么好看/kel。

标签:2024.10,set,迭代,训练,记录,递增,next,维护
From: https://www.cnblogs.com/docxjun/p/18449461

相关文章