当前位置: 首页 > news >正文

AtCoder Regular Contest 206 (Div. 2) 部分题解

AtCoder Regular Contest 206 (Div. 2) 部分题解

A - Range Replace

我们发现,若 \(a_i=a_{i+1}\) 则将操作左端点放在 \(i\)\(i+1\) 是等价的,为了不重复,我们强制所有操作左端点都要放在 \(i\) 使得 \(a_i\not ={a_{i-1}}\) ,即所有值相同的连续段的最左边。

固定左端点看右端点,若 \(a_L=a_R\) ,则和操作 \((L,R-1)\) 是等价的(因为 \(a_R\) 改不改都一样),按照最小原则,这种操作我们不要。

总结一下,左端点要求 \(a_L\not ={a_{L-1}}\) ,右端点要求 \(a_L\not ={a_R}\) ,这样所有的操作得到的序列都不一样,计算这个是容易的,枚举 \(a_i\) 的值就可以了。

B - Slime Swap

冒泡排序所有的逆序对最终都需要做交换,若逆序对两位置颜色相同,则需要做更改。

澄清一个事实,假定我们选择了一些位置,这些位置做更改,则一定存在一种改颜色的方案使得最终能排好序。

因此我们要选最优的一些位置使得这些位置价值和最小。

颜色相同的位置需要考虑,枚举颜色单独拉出来,对于一个子序列,我们选择一些位置删除,使得剩余的位置单调上升(若还有逆序对则还需要更改),那很明显最优是保留 LIS 的那些位置。

于是对每个颜色,求其序列的 LIS ,就能计算答案了。

C - Tree Sequence

考虑 \(r=l+1\) 的区间。若这个区间成立则必然有 \(a_l=l+1\)\(a_r=r-1\)

对于一个区间 \((l,l+1)\) ,若 \(a_l\not ={a_{l+1}}\) ,则必然有 \(a_{l+1}=l\) ,那再往后递进,\(a_{l+1}\not ={l+2}, a_{l+2}=l+1 \cdots\)

以此类推,我们发现,若某个位置有 \(a_i\not ={i+1}\) 则对于 \(x>i\) 必然有 \(a_x=x-1\)

那么我们尝试观察这个性质下这个序列长什么样子,最开始一段前缀,有 \(a_i=i+1\) ,直到出现一个位置 \(a_l\not ={l+1}\) ,那么往后的后缀,都有 \(a_x=x-1\) 。即,只有一个位置满足 \(a_i\not ={i+1}\) ,对于 \([1,i-1],a_x=x+1\),对于 \([i+1,n],a_x={x-1}\)

那么我们枚举这个出现异常的点的位置,再判断一下前后缀是否存在方案填成这种形式,那么前后缀不造成贡献,只有这个位置造成贡献,若这个位置已经有值,则判断一下,若没有值,则任意填一个不是 \(i+1\) 的数。

注意 \(i=n\) 要特判一下。

D - LIS ∩ LDS

很好的分讨,让我大脑旋转。

对于 \(n=1\) ,只有 \(k=1\) 可以。

对于 \(n=2\) ,只有 \(k=2\) 可以。

对于 \(n > 3\) 的情况:

  • \(k \geq 2\) 必然有解:
    • 构造 \(\{1,2,3,\cdots,n-k,n,n-1,n-2,\cdots,n-k+1\}\) ,LDS 为一个后缀,LIS 为前缀加 LDS 后缀的随便一个。
  • \(k=1\)\(n \geq 5\) 后有解:
    • 有构造 \(\{2,5,3,1,4\}\) ,更大的 \(n\) 只需要把 \(\{n,n-1,\cdots,6\}\) 插在最开头就可以。
  • \(k=0\)\(n \geq 8\) 后有解:
    • 有构造 \(\{3,4,8,7,2,1,5,6\}\) ,更大的 \(n\)\(\{n,n-1,\cdots,9\}\) 插在最前面。

具体怎么发现的呢?挂了两发打表看出来的。

http://www.hskmm.com/?act=detail&tid=12612

相关文章:

  • Grafana 和 Openssh 高危漏洞修复
  • 基于双PI控制器和三电平SVPWM交流同步直线电机矢量控制系统的simulink建模与仿真
  • 学习日报(补发)
  • Influxdb 得模糊查询总结
  • 多表关系和多表查询
  • 6
  • 【反比例函数】【做题笔记】【图形存在性】题目合集
  • 20250920 嘉定江桥---江苏吴江区太湖 往返160KM骑行小记
  • 工作队列(Work Queues)与消息确认(Ack)
  • React18新增的hook useId
  • 十年架构演进史:从臃肿war包到云原生,我们终于解放了!
  • week1作业
  • 6-5 汇聚层
  • 从IpadOS 26 Beta版切换成IpadOS 26 正式版
  • 2025.9.21总结
  • 6-4 多输入多输出通道
  • 6-6 卷积神经网络LeNet
  • 5-5读写文件
  • 6-2图像卷积
  • 二叉树的高度和判断平衡二叉树
  • 20250921 之所思 - 人生如梦
  • UE5 Cook数据结构
  • 通过微信对客服系统客户进行消息提醒,比如客户快过期了,访客发来的消息也是通过模板消息通知给客服
  • WPF治具软件模板分享 - Dragonet
  • 时间复杂度
  • 基于WOA鲸鱼优化的XGBoost序列预测算法matlab仿真
  • 软件工程第二次作业——个人项目
  • 微信扫码二维码,关注绑定公众号提醒,利用微信公众号的模板消息进行消息通知的推送
  • Arch下实现人脸识别登录:howdy的配置与使用
  • Salephpscripts Web_Directory_Free SQL注入漏洞利用分析(CVE-2024-3552)