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

[AGC032D] Rotation Sort 题解

[AGC032D] Rotation Sort 题解
📅 发布时间:2026/6/18 21:49:03
QwQ

[AGC032D] Rotation Sort 题解

把循环移位看作是将某个数向左或右插入到任意位置,显然一个数最多被移动一次。

那么该序列中一共有三种数:

  1. 向左移动
  2. 向右移动
  3. 不动

假设已知每个数属于哪一种,考虑如何判定该方案是否合法:

  1. 不动的数一定是单调递增的
  2. 不动的数把序列划分成了若干段,考虑一段内的数,对于向左移动的,要求其后一个不动的数大于它
  3. 对于向右移动的,要求其前一个不动的数小于它

如果一个数前一个不动的数小于它,后一个不动的数大于它,那么它可以直接不动,且容易验证进行这样的约束之后剩下部分依旧满足上述条件。

比如 \(x < y < z, a_x < a_y < a_z\),我们把 \(y\) 变成不动的,则 \(p\in(x, y), a_p > a_z\rightarrow a_p > a_y\),\(p\in(y,z), a_p < a_x\rightarrow a_p < a_y\)。

所以一个合法方案形如若干单调递增的数作为不动数,相邻不动数中间的一段满足 2. 或 3. 其中之一,这样一个段内数的操作代价,只需要和其前后的不动数其中一个作比较就可知。

得到了方案的刻画,进行 DP,\(f_i\) 表示前 \(i\) 个数,钦定 \(i\) 作为不动数的方案数,转移枚举上一个不动数即可。

时间复杂度:\(O(n^2)\)。

#include <iostream>
#include <cstring>
#include <algorithm>
#include <queue>
#define int long long
#define x first
#define y second
using namespace std;
typedef pair<int, int> PII;
const int N = 1e5 + 10;int n, a, b, p[N], f[N];signed main() {ios::sync_with_stdio(0), cin.tie(0);cin >> n >> a >> b;for(int i = 1; i <= n; i ++) cin >> p[i];f[0] = 0;int ans = 1e18;p[n + 1] = 1e9;for(int i = 1; i <= n + 1; i ++){f[i] = 1e18;for(int j = i - 1, c = 0; ~j; j --) {if(p[j] < p[i]) f[i] = min(f[i], f[j] + c);if(p[j] > p[i]) c += a;else c += b;}}cout << f[n + 1] << '\n';return 0;
}

相关新闻

  • [AGC024E] Sequence Growing Hard 题解
  • 实验2 现代C++编程初体验
  • 示性函数2

最新新闻

  • 微交互设计:从状态反馈到情感化动效的工程化实现
  • 【毕业设计】基于 Python+Vue 的习题自测型自主学习系统的设计与实现 基于 Python+Vue 的轻量化线上自主学习服务系统(源码+文档+远程调试,全bao定制等)
  • 2024天津正规全屋定制源头工厂实用梯队排名参考 - 信息热点
  • 南京地暖安装公司口碑解析:南京馨琪冷暖隐蔽工程品质之道 - 信息热点
  • 电摩跨省托运2026哪家强?靠谱平台推荐榜单 - 快递物流资讯
  • 2026年天津全屋定制源头公司综合实力排行参考 - 信息热点

日新闻

  • 2026年不锈钢卷板厂家推荐排行榜:冷轧热轧/304/201不锈钢卷板,高颜值耐腐蚀源头厂家实力精选 - 企业推荐官【官方】
  • FLUX.1-dev FP8模型实战指南:24GB以下显卡高效部署方案
  • 2026佛山长途搬家价目表:跨省跨市搬家费用完整计算指南 - 从来都是英雄出少年

周新闻

  • 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 号