ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

CF1322E

2022-08-02 21:35:36  阅读:125  来源: 互联网

标签:le 颜色 01 连续 答案 CF1322E 序列


只用ST表+二分的\(\mathcal O(N\log N)\)做法:

只考虑\(01\)序列的情况。不妨设\(a_{0}=a_1,a_{n+1}=a_n\),则\(1\)和\(n\)可以照常参加变换。

有长度\(>1\)的\(0\)或\(1\)连续段时其将稳定不变,将序列按照这些颜色相同的连续段分开。剩下若干\(0\)和\(1\)交错的连续段。若\(01\)连续段长度为奇数则其左端和右端的颜色相同,其会在\(\frac{len+1}2\)时间后变为其左端/右端的颜色(\(len\)为\(01\)连续段长度,下同)。

否则\(01\)连续段左半边会变为其左端的颜色,右半边会变为其右端的颜色,耗时\(\frac{len}2\)。

考虑一般的情况。设一个值\(x\),将\(a\)中所有\(\le x\)的值设为\(0\),其余设为\(1\),则原序列的答案为所有\(x\)对应的\(01\)序列答案的较大值。

考虑对每个位置计算其稳定下来需要的时间。

对相邻两个元素\(a_{i},a_{i+1}\),若\(x\ge a_i,a_{i+1}\)则其会作为\(0\)连续段出现,若\(x\le a_{i},a_{i+1}\)其会作为\(1\)连续段出现(\(=\)没有问题,因为\(x=a_i\)取\(0\)可以判别答案是否\(\ge x\),取\(1\)可以判别答案是否\(\le x\),若一个数的答案又\(\ge x\)又\(\le x\)则答案就是\(x\))。

对位置\(p\),枚举其稳定所需时间\(t\),则涉及段为\([p-t-1,p+t+1]\)。如果存在一个\(x\)满足区间内既有\(0\)连续段又有\(1\)连续段则表明\(t\)过大(观察上面\(01\)序列的情况,决定颜色只与距自己近的一侧连续段有关),否则可以试着增大\(t\),利用二分即可算出所有位置的稳定时间。

考虑根据稳定时间计算答案。若\(t=0\)则答案显然为\(a_p\)。否则考虑\(a_p\)和\(a_{p+1}\)的大小关系(显然其不相等且\(\operatorname{sgn}(a_p-a_{p+1})=\operatorname{sgn}(a_p-a_{p-1})\))。若\(a_p<a_{p+1}\)。\(a_p\)对应的\(01\)序列为\(0\),若\(t\)为奇数,不失一般性地假设答案对应的连续段在\(p\)右侧,则\(01\)序列为\(01010\dots 11\),取\(x\)最大的存在\(1\)连续段的数作为答案。否则取\(x\)最小的存在\(0\)连续段的数作为答案。设\(b_i=\min(a_i,a_{i+1}),c_i=\max(a_i,a_{i+1})\),用ST表维护\(\max b_i,\min c_i\)即可。

标签:le,颜色,01,连续,答案,CF1322E,序列
来源: https://www.cnblogs.com/Nikrot/p/16545222.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有