QOJ 3044 H. Maximizer

news/2024/11/28 16:50:12/文章来源:https://www.cnblogs.com/YzaCsp/p/18574587

算法

仔细做题可以发现, 一定是上半区下半区匹配, 特别的, 对于 \(N\) 为奇数的情况, 中间值可以任意归为上半区下半区

问题转化为将 \(A\) 任意上半区的数移动对应到 \(B\) 任意下半区的数, 完成之后 \(A\) , \(B\) 一定匹配

显然的, 将 \(A\) 中上半区的数和 \(B\) 中下半区的数挨个匹配即可, 每个匹配花费为位置之差, 当然也可以序列算出来求逆序对

特别的, 对于 \(N\) 为奇数, 我们将中间数归为上下半区分开计算, 显然最优

代码

#include<bits/extc++.h>
#define int long long
using namespace std;
const int maxn = 1e6 + 5;
int n,mid;
int a[maxn],b[maxn];
vector<int>v1,v2;
void calc2()
{for (int i = 1; i <= n; i++)if (a[i] > mid)v1.push_back(i);for (int i = 1; i <= n; i++)if (b[i] <= mid)v2.push_back(i);int ans = 0;for (int i = 0; i < (int)v1.size(); i++)ans += abs(v1[i] - v2[i]);cout << ans;
}
void calc1()
{for (int i = 1; i <= n; i++)if (a[i] >= mid)v1.push_back(i);for (int i = 1; i <= n; i++)if (b[i] <= mid)v2.push_back(i);int ans1 = 0;for (int i = 0; i < (int)v1.size(); i ++)ans1 += abs(v1[i] - v2[i]);v1.clear(),v2.clear();for (int i = 1; i <= n; i++)if (a[i] > mid)v1.push_back(i);for (int i = 1; i <= n; i++)if (b[i] < mid)v2.push_back(i);int ans2 = 0;for (int i = 0; i < (int)v1.size(); i ++)ans2 += abs(v1[i] - v2[i]);cout << min(ans1,ans2);}
signed main()
{scanf("%lld",&n);mid = (n + 1) / 2;for (int i = 1; i <= n; i++)scanf("%lld",a + i);for (int i = 1; i <= n; i++)scanf("%lld",b + i);if (n & 1)calc1();elsecalc2();return 0;
}

抄的机房巨佬

总结

不要被特殊样例诈骗啦!

主要没想到的是匹配的最优方法, 多做做题吧, 毕竟不是天赋哥

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/842952.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

海港企业数据资产消费实践,系统化梳理数据资产、深度释放数据要素潜力

港口企业作为交通运输枢纽,需要借助数字化手段提升管理水平、优化生产流程、提高运营效率,以适应日益增长的业务量和竞争压力。为了指导各地智慧港口的建设工作,交通运输部等多部门联合发布了《智慧港口建设指南》,明确了智慧港口建设的目标、原则、路径及重点任务,为港口…

windows中mysql 5.7修改数据存储路径【转:时光python之旅】

由于系统盘空间一般都不会设置很大,即使很大,但是如果数据库存放的数据多了也总会有空间不够用的时候,而系统盘又是比较重要的,没法进行更换,所以最好在安装好数据库之后,将数据存储路径改为存储盘。这里我用我的电脑做一次演示,希望能给大家带来帮助我的操作系统是Win1…

别再乱糟糟!学术知识的高效整合法则

在信息爆炸的时代,如何高效管理知识成为了学术工作者的重要挑战。以往,许多人将知识管理局限于单纯的文档存储与分类,但随着需求的精细化,单纯的工具已不足以应对复杂的学术需求。今天想和大家聊一个不那么显而易见但非常实用的知识管理概念——动态结构化看板,这或许能给…

鲲鹏ARM64环境、银河麒麟KylinOSV10 下源码移植安装MariaDB 10.5.19参考

1 硬件 鲲鹏920处理器2 操作系统 银河麒麟V10 SP33 配置编译环境 3.1 配置代理 3.1.1 打开/etc/profile文件 vim /etc/profile 3.1.2 在/etc/profile文件中增加以下内容(根据实际情况填写)。 export http_proxy="http://用户名:密码@代理IP:代理端口" export …

从入门到精通:安徽京准GPS北斗卫星时间同步系统

从入门到精通:安徽京准GPS北斗卫星时间同步系统从入门到精通:安徽京准GPS北斗卫星时间同步系统 从入门到精通:安徽京准GPS北斗卫星时间同步系统 京准电子科技官微——ahjzsz 第一部分 网络时间同步显示系统概述: 医院、学校网络时间同步显示系统是由高精度GPS(北斗)网络母…

YASKAWA安川机器人DX100轴控制基板维修解析知识

ASKAWA安川机器人DX100轴控制基板的维修是一项复杂而精细的工作,要求具备丰富的知识和实践经验。通过与子锐机器人维修联系,希望能企业提供一些有益的参考和帮助,在面对轴板故障时能够迅速准确地找到问题所在并妥善处理。 一、YASKAWA安川机器人维修步骤与方法 1、故障诊断:…

半导体制造领域中的粒子缺陷(Particle Defect)

随着半导体技术的进步,制造过程中的质量控制已成为提高半导体器件性能和可靠性的核心。粒子缺陷不仅会显著降低器件的电气性能,例如导致电路短路或开路等故障,而且对器件的长期可靠性产生严重影响,从而增加了器件性能退化和失效的可能性。 Part1 引 言 半导体制造行业是现…

DSPf28335-GPIO

GPIO(通用输入输出端口 general purpose intput output) DSP TMS320F28335一共176个引脚。包括:电源引脚、晶振引脚、复位引脚、下载引脚、BOOT引脚、GPIO引脚。 除了上述的5类引脚外的GPIO引脚一共88个,88个GPIO引脚又分为A、B、C三类。 A类为0~31; B类为32~63; C类为64…

iOS手机免越狱群控系统:实现同步投屏与多设备管理的新工具

免越狱群控系统概述 免越狱群控系统是一种基于苹果官方接口和网络通信技术的电脑端软件,通过合法合规的方式接入并操控多台iOS设备。该系统无需对iOS设备进行越狱,即可实现集中化、自动化控制。其核心功能包括:同步投屏:实时查看和控制多台iOS设备的屏幕。 批量操作:一键执…

NeRF学习笔记

NeRF 学习笔记参考资料十分钟带你快速入门NeRF原理_哔哩哔哩_bilibili 任务概述网络结构:输入 1. 采样点位置数据集是五维数据。theta phi决定了射线的方向,xyz是相机位置。 但是感觉x,y,z,theta phi为什么不直接用xyz表示?感觉剩下两个信息是冗余的。因为可能和射线有关,所…

考研打卡(29)

开局(29) 开始时间 2024-11-28 14:45:31 结束时间 2024-11-28 15:17:32 明天是1125今天去学冠领了几份资料数据结构具有5层节点的AVL树至少有_______个节点。(南昌大学 2015年) A 10 B 12 C 15 D 17B 答案设Nh表示深度为h的平衡二叉树中含有的最少节点数…

解决水库安全监测难题 长期无外接电源 低功耗设备智能化监测系统

解决水库安全监测难题 长期无外接电源 低功耗设备智能化监测系统国内某水库安全监测项目需要监测点分散,且无外接供电。项目年限为4年,不允许使用太阳能电板。因此,我们需要设备具备低功耗且内置电池的功能。为了满足客户的要求,我们的研发团队将采集仪从NLM511T升级到电池…