题解:CF1830E Bully Sort

news/2025/10/14 15:13:57/文章来源:https://www.cnblogs.com/a1a2a3a4a5/p/19134044

题目:

每 bully swap \(i,j\) 会使得 \(\sum_i \left | i-p_i \right |\) 减少 \((2j-2i)\),使得逆序对数减少 \((2j-2i-1)\)
又因为一个数始终单向移动,所以 bully swap 次数为 \((\sum_i \left | i-p_i \right | - 逆序对数)\)

代码:

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int QAQ=5e5+7;
int n,q,p[QAQ],cnt;
ll da[QAQ],ans[QAQ],ans1;
struct xxx {int a,b,c,cnt;} d[QAQ*6];
int s[QAQ];
#define lbd(x) (x&(-x))
void jia(int x,int c)
{for(int i=x;i<=n;i+=lbd(i)) s[i]+=c;
}
int cha(int x)
{int da=0;for(int i=x;i;i-=lbd(i)) da+=s[i];return da;
}
bool cmp1(xxx a,xxx b) {return a.b<b.b;}
void cdq(int l,int r)
{if(l==r) return ;int mid=(l+r)>>1,i=l;cdq(l,mid),cdq(mid+1,r),sort(d+l,d+mid+1,cmp1),sort(d+mid+1,d+r+1,cmp1);for(int j=mid+1;j<=r;j++){while(i<=mid&&d[i].b<=d[j].b) jia(d[i].c,d[i].cnt),i++;ans[d[j].a]+=(ll)d[j].cnt*(cha(n)-cha(d[j].c));}for(int k=l;k<i;k++) jia(d[k].c,-d[k].cnt);i=mid;for(int j=r;j>=mid+1;j--){while(i>=l&&d[i].b>=d[j].b) jia(d[i].c,d[i].cnt),i--;ans[d[j].a]+=(ll)d[j].cnt*cha(d[j].c-1);}for(int k=mid;k>i;k--) jia(d[k].c,-d[k].cnt);
}
signed main()
{cin>>n>>q;for(int i=1;i<=n;i++) cin>>p[i],ans1+=abs(i-p[i]),d[++cnt]={0,i,p[i],1};for(int i=1,x,y;i<=q;i++)cin>>x>>y,d[++cnt]={i,x,p[x],-1},d[++cnt]={i,y,p[y],-1},ans1-=abs(x-p[x]),ans1-=abs(y-p[y]),swap(p[x],p[y]),d[++cnt]={i,x,p[x],1},d[++cnt]={i,y,p[y],1},ans1+=abs(x-p[x]),ans1+=abs(y-p[y]),da[i]=ans1;cdq(1,cnt);for(int i=1;i<=q;i++) ans[i]+=ans[i-1];for(int i=1;i<=q;i++) cout<<da[i]-ans[i]<<'\n';return 0;
}

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

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

相关文章

斑马日记2025.10.10

今天加入了概数部分的学习,然后参加了蓝桥杯的新生赛,有一些感悟和收获,现在分享一下。 蓝桥杯新生赛中,遇到的问题: 1,对于循环部分的运用不够精辟,有些题目特别是简单题,对时间复杂度的要求很苛刻,所以有些…

单片机概念

单片机概念1.单片微机型别名:单片机,微控制器,适用于控制领域。 2.单片机与微型计算机有什么不同? 微型计算机集多块芯片通过电路板上总线连成一体的完整计算机系统。 单片机是集微型计算机主要功能于同一块芯片上…

斑马日记2025.10.12

今天继续进行了面向对象部分的学习,然后做了一道关于字符串部分的题目,收获了很多,现在分享一下: 关于面向对象部分,今天学了class和struct的区别以及属性私有化: 1.在class和struct的区别方面,首先是在访问权限…

Androidify:基于Gemini AI的安卓机器人定制应用

Androidify是一个开源AI驱动应用,使用Gemini API和Jetpack Compose技术,让用户通过拍照生成个性化安卓机器人形象,支持表盘定制和多平台部署。Androidify:AI驱动的安卓机器人定制应用 项目描述 Androidify是一个基…

入门指南:使用 Playwright MCP Server 为你的 AI Agent 赋予浏览器自动化能力

你是否曾经希望你的AI助手不仅能回答问题,还能真正帮你操作网页——自动填写表单、抓取数据、执行重复性任务?现在,通过 Playwright MCP Server,这一切都成为了可能。 本文将带你从零开始,一步步将浏览器自动化能…

实战教程:构建能交互网页的 AI 助手——基于 Playwright MCP 的完整项目

项目概述:打造智能网页操作助手 在本教程中,我们将构建一个完整的、能够实际交互网页的AI助手。这个助手不仅能理解自然语言指令,还能通过 Playwright MCP 执行复杂的网页操作。我们将从零开始,搭建一个功能完备的…

popcount 题

题目链接题意 定义序列 $a$ 满足 $a_0=1,a_i=a_{i-1}+\text{popc}(a_{i-1})$,其中 $\text{popc}$ 表示二进制下 $1$ 的个数。 给定 \(n\),求出最小的 \(i\) 满足 \(a_i=n\),或报告不存在。 \[1\le n\le 10^{18} \]…

2025 年国内卷板机源头厂家最新推荐排行榜:涵盖不锈钢 / 大型 / 锥形 / 数控等多类型设备,助力企业精准采购优质设备

在工业制造快速发展的当下,卷板机作为金属板材加工的核心设备,广泛应用于机械、汽车、船舶、容器等众多领域,其品质与性能直接关系到企业的生产效率和产品质量。然而,当前卷板机市场厂家数量繁杂,既有技术领先、品…

达梦开启awr功能报错:[-7160]:Object [DBMS_WORKLOAD_REPOSITORY_DATA_LOW] is invalid

达梦开启awr功能报错:[-7160]:Object [DBMS_WORKLOAD_REPOSITORY_DATA_LOW] is invalid版本如下:14:45:26 SYSDBA@xchz(140012390767224)> SELECT id_code, t.* FROM v$version t;ID_CODE …

ceph日常管理

1.查看ceph mgr状态 systemctl status ceph-mgr@master.servicesystemctl status ceph-mgr@node1.servicesystemctl status ceph-mgr@node2.service[root@master ~]# ceph mgr services

mysql5.7 AUTO_INCREMENT 问题

SELECT @@global.sql_mode, @@session.sql_mode; SET SESSION sql_mode=CONCAT(@@sql_mode,,NO_AUTO_VALUE_ON_ZERO); NO_AUTO_VALUE_ON_ZERO 影响AUTO_INCREMENT 列的处理。NULL通常,您通过插入或 来为该列生成下一个…

Flash游戏浏览器

Flash游戏浏览器是Flash中国官方推出的一款综合性浏览器,专为畅玩Flash网页游戏而设计。它自带Adobe Flash Player插件,采用CEF浏览器内核,能够顺畅运行Flash内容,无需担心兼容性问题和播放报错情况。该浏览器具备…

vi/vim 的使用及 CentOS 静态网络配置并链接 Xshell

vi/vim 的使用及 CentOS 静态网络配置并链接 Xshell vi/vim 基础 vi 与 vim 的区别 vi 是 Linux 系统原生的文本编辑工具,可以简单理解为 vim 是 vi 的升级版,两者核心功能一致,主要差异如下:对比维度 vi vim颜色显…

102500410 杜惟真 10月14日作业

下载完成:代码截图: (记得在每行代码后加入分号!)运行界面:这份作业属于的课程:https://edu.cnblogs.com/campus/fzu/gjyycx/homework/13558 这份作业的要求:https://edu.cnblogs.com/campus/fzu/gjyycx/homew…

alpline 构建lnmp

alpline 构建lnmp default.conf map $http_upgrade $connection_upgrade {default upgrade; close; }server {listen 80;root "/app/public";index index.php;charset utf-8;location / {try_files $ur…

2025 年最新推荐操作台厂家排行榜:覆盖指挥中心 / 控制室 / 中控室 / 监控室 / 调度室场景,为用户选购优质产品提供专业参考

当前,操作台作为指挥中心、监控室等核心场景的关键设备,其品质、功能性与适配性直接关系到工作效率与运行稳定性。然而,市场上操作台品牌数量繁多,产品质量参差不齐,部分产品存在工艺粗糙、不符合人体工学、定制服…

Ubuntu tightenVNC安装及配置

Ubuntu tightenVNC安装及配置安装tighenVNC sudo apt install xfce4-session xfce4-panel xfwm4 xfdesktop4配置xstartup vncserver -geomtery 1920x1080 #此命令生成vnc session chmod 755 ~/.vnc/xstartup执行完成后…

NVR设备ONVIF接入平台EasyCVR智慧小区视频监控系统建设方案

NVR设备ONVIF接入平台EasyCVR智慧小区视频监控系统建设方案一、方案背景 智慧小区构成了“平安城市”建设的基石。随着社会的进步,社区安全问题逐渐成为公众关注的热点。诸如高空抛物、乱丢垃圾、破坏车辆、入室盗窃等…

FPGA开发流程

Fpga开发流程可以分为编译,仿真验证,综合,实现,生成比特流文件。记忆这个流程,编译,仿真验证可以看做综合前。 编译这个阶段是将输入的.v文件编译生成中间文件供后续使用,这个阶段你可以验真写的verilog代码是否…

毕业论文技巧:Word中使用Mathtype对公式自动编号(带章节号)

参考:毕业论文技巧:Word中使用Mathtype对公式自动编号(带章节号)_mathtype自动编号按章节-CSDN博客 在毕业论文或者其他类似的长篇论著写作中,常需要根据章节号对公式进行依次编号,使用Mathtype即可做到。需要说…