AcWing 算法提高课 统计逆序对的数量
利用归并排序统计逆序对的数量

int n; int nums[500010]; int backup[500010]; LL MergeSort(int l,int r) { if(l==r) return 0; int mid=(l+r)/2; LL res=MergeSort(l,mid)+MergeSort(mid+1,r); int i=l,j=mid+1,k=l; while(i<=mid&&j<=r) { if(nums[i]<=nums[j]) backup[k++]=nums[i++]; else { //注意这里的统计方式,是为了在后面, //如果进入这里,说明j还有剩余,则i已经到了mid+1,不用改变res //否则,进入上面,也不用改变res res+=mid-i+1; //res+=j-mid; 这种写法统计的答案不足 backup[k++]=nums[j++]; } } while(i<=mid) backup[k++]=nums[i++]; while(j<=r) backup[k++]=nums[j++]; fore(id,l,r) { nums[id]=backup[id]; } return res; } void YD() { fore(i,1,n) { cin>>nums[i]; } cout<<MergeSort(1,n)<<endl; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人