Pinely Round 2 (Div. 1 + Div. 2) / Codeforces contest 1863 题解
难度:D << B < C << A
Problem A. Channel
https://codeforces.com/contest/1863/problem/A
流程看起来很复杂,让我们重述一下题意。
两数
Problem B. Split Sort
https://codeforces.com/contest/1863/problem/B
让我们从一个连续段的视角看这个问题。
* | * | * | |||||||||||||||||
* | |||||||||||||||||||
* | * | ||||||||||||||||||
* | * | * | |||||||||||||||||
* | * | * | * | ||||||||||||||||
* | * | * | |||||||||||||||||
* | * | ||||||||||||||||||
* |
每次选尽可能长的下标递增的值连续的段。
考虑分成两段,值分别是
观察
* | * | * | ||||||||
* | ||||||||||
* | * | |||||||||
* | * | * | ||||||||
* |
发现连续段的相对位置是不变的。
那么,像
那么答案当然是 连续段个数
Problem C. MEX Repetition
https://codeforces.com/contest/1863/problem/C
第一轮暴力(可以用std::set维护未出现的数)。发现a的元素的值变成了
对于之后的
让
让
对于一轮操作,
其中 原先的
执行
那么答案是数组前
Problem D. Two-Colored Dominoes
https://codeforces.com/contest/1863/problem/D
横向的多米诺骨牌是不影响每行的 黑白个数差的,因为黑白各贡献一个。
因此每行的 黑白个数差是由纵向的多米诺骨牌构成的。
考虑跨第一行第二行的纵向多米诺骨牌。
如果有偶数个,那么可以任意分配其中一半,在第一行涂白色;另一半,在第一行涂黑色。奇数个是不行的。
如果涂色成功,那么对第二行是没有影响的。不妨去掉这些骨牌。那么继续在第二行递归地做就可以了。
对每一列的 黑白个数差 同理。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析