其他分享
首页 > 其他分享> > 【LGR-113】洛谷 7 月普及组月赛 & JROI R6 解题报告

【LGR-113】洛谷 7 月普及组月赛 & JROI R6 解题报告

作者:互联网

目录

【LGR-113】洛谷 7 月普及组月赛 & JROI R6

因为太菜了所以只能做做普及组的题目这档事。

但正常的普及组比赛肯定也不会出现这么多序列的题吧。我还不会做(悲)。

传送门

A

本题仅需要知道二个性质:相邻两个数的最大公约数为 \(1\) ,此为其一;同一个数的最大公约数为其本身。

于是只要开 long long 并做一个特判即可。

B

无比显然的一题,感觉难度甚至不如 A

排序然后倒序找一下位置即可。

C

CD 的难度与前两题有较为明显的断层。

本题的部分分不再赘述,直接看正解。

首先,有这样一个值得注意的点,即是本题中的数据范围, \(a_i,b_i\le n\) ,这提示我们可以枚举 mex

其次,若在一个区间内,不满足 \(a_i= b_i=x\) ,则 mex 一定会小于等于 \(x\) 。

于是,我们考虑记录每一个 \(a_i=b_i=x\) 的位置,此时 \(c_i\) 也是唯一确定的。

每一个这样的位置,会将序列分为若干个子区间,记录对应的 \(x\) 最大子区间长度 \(len[x]=\max(len[x],r-l+1)\) 。

根据题意,我们遍历 \(x\in[0,n]\) ,更新答案 \(ans=\max(ans,len[x]-x)\) 即可。

D

本题的部分分不再赘述,直接看正解。

首先,有这样一个值得注意的点,所求区间的两个边界一定对应着两个最值。该性质留给读者自证。

于是,我们分类讨论即可。

情况一:若 \(a_l=\min\left \{ a_l,a_{l+1},\cdots,a_r \right \}\) ,则易得 \(ans=(a_r-r)-(a_l-l)-1\) 。

情况二:若 \(a_l=\max\left \{ a_l,a_{l+1},\cdots,a_r \right \}\) ,则易得 \(ans=(a_l+l)-(a_r+r)-1\) 。

于是,我们可以预处理出 \(a_i-i\) 的前缀最小值 \(pre[i]\) 和 \(a_i+i\) 的后缀最小值 \(suf[i]\) 。

易得 \(pre[i]=\min(pre[i-1],a[i]-i),suf[i]=\min(suf[i+1],a[i]+i)\) 。其中,正序倒序各遍历一遍数组即可。

情况一:枚举 \(r\) ,故 \(ans=\max(ans,(a_r-r)-pre[r]-1)\) 。

情况二:枚举 \(l\) ,故 \(ans=\max(ans,(a_l+l)-suf[l]-1)\) 。

同时,由于本题的写法,所以可以忽视特判 \(-1\) 的代码。

标签:pre,suf,R6,洛谷,max,JROI,普及,ans,本题
来源: https://www.cnblogs.com/haphyxlos/p/16536279.html