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

题解:CF1830E Bully Sort

题解:CF1830E Bully Sort
📅 发布时间:2026/6/20 4:14:27

题目:

每 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;
}

相关新闻

  • 单片机概念
  • Androidify:基于Gemini AI的安卓机器人定制应用
  • popcount 题

最新新闻

  • ApexSQL Log 2018:SQL Server事务日志可视化分析与精准回滚工具
  • 孤能子视角:涌现的本体论、动力学与认识论
  • Redis的数据结构
  • 文成未来教育:专注高考志愿填报的专业升学规划机构 - 起跑123
  • 东莞市新开业或装修后理发店卫生+空气检测,公共场所检测 - 公共场所卫生检测
  • 2026年6月宝玑官方售后服务网络全新升级:中国区60+门店地址、电话信息同步启用 - 亨得利中国服务中心

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

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