Codeforces Round #842 (Div. 2)
1|0A
核心思路:样例模拟出答案。
2|0B
核心思路:这个题目的关键是需要找出相对顺序,找出来需要我们操作的数。 我们可以操作的数就是不符合相对顺序的长度。总的来说这个题目还是有点玄学,就是属于有那个感觉了,但是不知道怎么去操作。注意别想复杂就好了。
3|0C
核心思路:这个题目刚开始确实不知道怎么去构造,但是我们通过模拟样例可以发现,应该是需要构造的数列p中某一个数不可以超过2可以等于2.这是我们发现的第一个性质,然后再去思考另外一种无解的情况,也就是1 1.这个又是为什么无解呢,其实我们可以发现前i个位置,我们可以检查前i个数出现的次数,如果是大于i那么也肯定无解。因为我们的位置塞不下这么多数了。
好了,讨论了无解的情况,接下来去像怎么去构造有解的情况。
- 某个数出现的次数为2的构造:我们可以假设是i,j这两个位置出现了次数是2的情况。那我们可以寻找第一个小于等于b[i]的那个没有出现的数进行这个位置的填补。
- 然后其他次数为1的构造:这个我们可以利用max的性质,也就是
。就是两个位置都填b[i].
下面看下模拟的实例模拟吧。
其实对于构造问题,二分求我们的构造的数用得比较多.
4|0D
核心思路:这是一个求逆序对的题目,所以我们可以联想置换环来进行求解。
现在引入置换环的一些前置知识吧:
置换环可以得到数组排序的一个最小次数,主要思想是:将我们的每个节点指向其排序后应该存放的位置,最终首尾相接形成一个环,那么数组排序的最小的次数就是数组的长度-环的数目。
所以我们在处理置换环的问题可以看成图论的问题。
但是这个题目还有一个性质:那就是相邻的两个环达到我们题目所需的条件只需要n-cur-1.
下面看ygg的图:
所以这个问题也就基本解决了。
__EOF__

本文作者:肖英豪
本文链接:https://www.cnblogs.com/xyh-hnust666/p/17031554.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/xyh-hnust666/p/17031554.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
分类:
codeforces之旅
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)