当前位置: 首页 > news >正文

QOJ7937 题解

异或 $a$ 和 $b$ 等价于异或一次 $a,b$ 的异或和,所以对排列的异或操作最多一次
易知交换次数等于排列的逆序对数
题目转化为把排列的每个数异或上一个数 $x$ ,使得排列的逆序对数最少,并求出最少的逆序对数

对于两个正整数 $a,b$
$a,b$ 记二进制上从高位到低位第一个不同的位为第 $k$ 位
若 $ a_k=1 $ 则 $ a>b $ ,反之 $ b>a $

记 $c[k][0] 为 x_k=0$ ,最高不同位为 $k$ 的数对其产生的逆序对数
记 $c[k][1] 为 x_k=1$ ,最高不同位为 $k$ 的数对其产生的正序对数
则有两种情况
$l=log_2 n$
1.不进行异或操作

$ans= \sum_{i=0}^l c[i][0]$  

2.进行异或操作

$ans=1+\sum_{i=0}^l min(c[i][0],c[i][1])$  

 1 #include<cstdio>
 2 #include<vector>
 3 using namespace std;
 4 #define ll long long
 5 const ll maxn=1e5+5;
 6 ll n,l,c[30][2],ans,res;
 7 vector <ll> a;
 8 void get(vector <ll> a,ll b){
 9     if(b<0||a.size()<=1)return;
10     vector <ll> oe;
11     vector <ll> zo;
12     ll o=0,z=0;
13     for(ll i:a){
14         if((i>>b)&1){
15             c[b][1]+=z;
16             o++;
17             oe.push_back(i);
18         }
19         else{
20             c[b][0]+=o;
21             z++;
22             zo.push_back(i);
23         }
24     }
25     get(oe,b-1);
26     get(zo,b-1);
27 }
28 int main(){
29     scanf("%lld",&n);
30     for(ll i=1;i<=n;i++){
31         ll x;
32         scanf("%lld",&x);
33         a.push_back(x);
34     }
35     while((1<<l)<n)l++;
36     l--;
37     get(a,l);
38     for(ll i=0;i<=l;i++){
39         res=res+min(c[i][0],c[i][1]);
40         ans+=c[i][0];
41     }
42     res++;
43     printf("%lld",min(res,ans));
44     return 0;
45 } 

 

http://www.jsqmd.com/news/1196064/

相关文章:

  • 自动驾驶横向控制算法——从几何模型到工程实践:Pure Pursuit的优化与挑战
  • 深度解析BabelDOC:新一代智能PDF文档翻译引擎的架构设计与性能优化
  • 构建高性能存储网络:NVMe-oF、SPDK与RDMA的融合实践
  • python 连接拓竹打印机
  • 66AK2G12 QSPI/SPI/UART接口时序深度解析与设计实践
  • 智慧充电系统定时任务处理异常订单实战方案
  • Codex CLI本地化部署实战:从环境配置到VSCode集成
  • 2026驻马店楼顶漏水、卫生间漏水、外墙、地下室、阳台+阳光房渗漏不用愁!3家正规公司(7月) - 防水企业百科
  • 2026年7月市面上靠谱的抖音推广厂商推荐,抖音推广/矩阵系统,抖音推广公司推荐 - 品牌推荐师
  • LLM应用安全加固:企业级提示词防护与输出校验实践
  • 基于STM32单片机的手环脉搏心率血氧体温血压无线视频监控/WiFi/蓝牙APP设计DIY-T082X
  • 管理系统UI 统一设计规范skill
  • 2026南通卫生间漏水、外墙、楼顶、地下室、阳光房渗漏别着急!3家正规服务商(7月) - 防水企业百科
  • 你了解的spring都用到哪些设计模式?
  • sed 配合 visudo 校验可以实现自动化配置
  • HEAD请求实战指南:从原理到性能优化的深度探索
  • 全球植被物候期|植被郁闭度|地表动态反馈|多分辨率栅格
  • 代码审查中的上下文感知:跨文件依赖分析与变更影响范围评估
  • 2026济宁楼顶漏水、卫生间漏水、外墙、地下室、阳台渗漏怎么选?3家正规公司(7月) - 防水企业百科
  • 存量报告隐患一键清零!IACheck AI报告审核通审Agent版全文档批量溯源排查避险
  • 杭州爱彼回收价格查询及靠谱回收平台实测排行(2026年7月最新数据) - 尊奢回收二奢平台
  • 杭州GEO公司哪家好?制造企业GEO服务商TOP5专项推荐 - 资讯纵览
  • MOS管实战指南:从基础原理到电机驱动应用
  • 首次适应算法在动态分区管理中的C语言实现与内存链维护
  • redis集群的实现原理是什么?
  • 【Java踩坑笔记】47_日期时间计算还在用SimpleDateFormat?线程不安全
  • 2026六安楼顶漏水、卫生间漏水、外墙、地下室、阳台渗漏不用愁!3家口碑服务商(7月) - 防水企业百科
  • 【SpringAI 10】对话机器人快速入门
  • 社交媒体危机公关:从品牌营销边界到舆情管理实战
  • 2026临沂楼顶漏水、卫生间漏水、外墙、地下室、阳台+阳光房渗漏不用愁!3家靠谱公司(7月) - 防水企业百科