欢迎光临散文网 会员登陆 & 注册

复盘|第329场周赛

2023-01-22 22:14 作者:UCLmsc  | 我要投稿

交替数字和

【模拟】从最低为开始模拟,到最高位如果是负号就整体取反。

根据第 K 场考试的分数排序

【排序】按题意排序。

执行逐位运算使字符串相等

【思维题】如果字符串中有1,那么选1和0可以把0变成1;选1和1可以把1变成0。而如果只有0,是无法得到1的。因此,只要两个字符串中都有1或者都没有1,就可以互相转换。

拆分数组的最小代价

【线段树】记x上一次出现的位置是last],上上一次出现的位置是last2[x]。如果从左到右枚举x=nums[i],那么区间[last[x]+1,i]内的数的unique都加一;区间[last_2[x]+1,last[x]]内的数的unique都减一,相当于把之前的加一撤销掉 (如果last2[x不存在则不更新)。此外,我们求的是一段区间内的f[j]-unique_j,i:的最小值,这可以用线段树优化(区间更新,区间查询)。注意unique_j,i前面是负号,所以上面的区间更新值要取反。代码实现时,由于枚举nums[i]时,更新的是f[i+1],可以在上一轮循环时把它记录下来,在下一轮循环时去把它加到线段树中。


复盘|第329场周赛的评论 (共 条)

分享到微博请遵守国家法律