尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

10.16 —— 2021ccpc桂林D,B

10.16 —— 2021ccpc桂林D,B
📅 发布时间:2026/6/19 10:24:54

D. Assumption is All You Need

又是一道思维题,还是没想出来,看了官解感觉巨麻烦,又翻了下民间题解,变得简洁易懂多了。蒟蒻太笨了qwq...

给定两个排列 \(a, b\),可以交换排列 \(a\) 的任意一个逆序对,问能否将 \(a\) 变成 \(b\),并求一个合法的操作过程。

由于只能交换逆序对,显然在操作过程中,逆序对的数量只会减少。可以察觉到:逆序对越多,可操作性越强,越有利于我们得到期望序列。因此我们可以贪心地想:让较大的数尽可能地在左边,这样序列的可操作性就会放大。

考虑从左到右依次匹配:假设当前正在匹配第 \(i\) 个位置,分情况讨论:

  1. \(a[i] = b[i]:\) 已经匹配,直接跳过
  2. \(a[i] < b[i]:\) 由于只能交换更小的数到该位置,因此可以判定无解。
  3. \(a[i] > b[i]:\) 此时在 \(i\) 位置的右侧必有满足 \(a[i] > a[j] = b[i]\) 的位置 \(j\),可以将其交换过来以匹配位置 \(i\),但这样太草率了,因为在位置 \(j\) 特别靠后的情况下,直接交换会导致 \(a[i]\) 到位置 \(j\) 上,这样不一定是最优的,因为在将 \(a[j]\) 交换到位置 \(i\) 前,\(a[i]\) 可能会有位置更靠左的去处(前面说了,让较大的数尽可能地在左边)。我们可以通过多次交换来实现它:在将 \(a[j]\) 交换到位置 \(i\) 之前,可以先将 \(a[i]\) 交换到 \(a[j]\) 左侧的某个位置,使得交换后 \(a[j]\) 仍能被换到位置 \(i\)。具体地,我们可以从 \(i\) 位置开始,向右找第一个 \(a[i] > a[k]\) 且 \(a[k] \geq b[i]\) 的位置 \(k\) 作一次交换,持续这样的操作,直到位置 \(i\) 匹配。与直接一次交换匹配相比,这样做可以在使得位置 \(i\) 匹配的情况下,让原 \(a[i]\) 尽可能靠左;同时我们发现,所有交换的位置在全部交换操作完成后,相对位置不变,这样做也使得逆序对的损失达到最小化,显然更有利于后面的操作。

复杂度 \(O(n^{2})\)。

后来才发现官解也是这种做法,晦涩难懂的部分全部都是对这种做法的证明。确实,严格证明还是 \(too\space hard\) 的。

补完后还是觉得太难想了,看来距离牌子还差得很远。。。

code

B. A Plus B Problem

一道简单模拟,开始用了 \(O(q\log^{2}n)\) 的线段树 + 二分,TLE7; 后来看了官解,才发现二分是可以优化掉的,直接用平衡树或者 \(set\) 维护满足 \(r1[i] + r2[i] \neq 9\) 的所有位置 \(i\) 即可,复杂度是 \(O(q\log n)\) 的,但还是 TLE 7。可能是实现得比较繁琐,常数太大了?看民间题解里也有用线段树区间赋值做的,应该还是自己的实现有点问题。。。

脑子糊了,明天再看。

code_tle7

相关新闻

  • 日志|二叉树|404左叶子之和|112路径总和|129求根节点到叶子节点数字之和|
  • 云服务器上部署 EasyTier中转服务器
  • 问世界

最新新闻

  • StarUML Java插件:3步实现UML与Java代码的双向同步
  • 深圳黄金回收实测指南,六大本地奢品门店走访测评 - 薛定谔的梨花猫
  • 2026 宁波闲置名包处置全测评:正规连锁门店横向对比,看懂皮具估价底层逻辑 - 奢侈品回收评测
  • 渭南黄金回收指南:六家靠谱店铺推荐,覆盖全市区县安心变现 - 清奢黄金上门回收
  • 阿拉善盟黄金回收去哪儿好?整理了5家靠谱实体店地址电话 - 奢金汇
  • 2026西宁黄金回收白银回收铂金回收门店+工商公安双备案+中检认证商家推荐 - 诚金汇钻回收公司

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号