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

归并分治模板

翻转对

class Solution {
public:int findpairs(vector<int> &nums, int l, int r) {int mid = (l + r) >> 1;int i = l, j = mid + 1;int res = 0;for (; i <= mid; ++i) {while (j <= r && (1LL * nums[i] > 2LL * nums[j])) {res += mid - i + 1;++j;}}return res;}int merge(vector<int> &nums, int nums2[], int l, int r) {if (l >= r) return 0;int res = 0;int mid = (l + r) >> 1;res = merge(nums, nums2, l, mid) + merge(nums, nums2, mid + 1, r) + findpairs(nums, l, r);int i = l, j = mid + 1;int id = l;while (i <= mid && j <= r ) {if (nums[i] <= nums[j]) nums2[id++] = nums[i++];else nums2[id++] = nums[j++];}while (i <= mid) nums2[id++] = nums[i++];while (j <= r) nums2[id++] = nums[j++];for(int ind = l;ind <= r;ind++) nums[ind] = nums2[ind];return res;}int reversePairs(vector<int>& nums) {int n = nums.size();int nums2[n];if (n == 0) return 0;return merge(nums, nums2, 0, n - 1);}
};

小和问题

#include<bits/stdc++.h>
using namespace std;
#define maxn 100005
#define ll long longint a[maxn];
int b[maxn];ll find(int a[], int l, int r) {if (l == r) return 0;int mid = (l + r) >> 1;int i = l, j = mid + 1;ll res = 0;for (; j <= r; ++j) {while (i <= mid && a[i] <= a[j]) {res += 1LL * (r - j + 1) * a[i];i++;}}return res;
}ll merge(int a[], int b[], int l, int r) {if (l >= r) return 0;int mid = (l + r) >> 1;int i = l, j = mid + 1, k = l;ll res = merge(a, b, l, mid) + merge(a, b, mid + 1, r) + find(a, l, r);while (i <= mid && j <= r) {if (a[i] <= a[j]) b[k++] = a[i++];else b[k++] = a[j++];}while (i <= mid) b[k++] = a[i++];while (j <= r) b[k++] = a[j++];for (int i = l; i < k; ++i) a[i] = b[i];return res;
}int main() {int n;cin >> n;for (int i = 0; i < n; ++i) cin >> a[i];cout << merge(a, b, 0, n - 1);return 0;
}
http://www.jsqmd.com/news/65327/

相关文章:

  • 2025燕窝品牌实力排行榜:艾玛琳商贸以溯源科技领衔,六大高潜力燕窝衍生品与礼品企业深度解析
  • ABC 435 解题报告
  • 【创作分享】一个简单易用、功能强大的 AI 图片生成工具:NanoEdit(基于Gemini 3.0 Nano Banana Pro)
  • 街头徒手健身4高阶引体向上
  • shell脚本内使用alias
  • 告别手动编码:如何用Screenshot-to-code搭建设计稿自动转HTML全流程
  • Helloworld
  • 实验4
  • ffmpeg移植到arm
  • 英语_阅读_songs playlists_待读
  • Hello,World!
  • JavaScript 转换(转译)工具———babel
  • JavaScript 转换(转译)工具———babel
  • 完整教程:特斯拉 Tesla 面试经验分享|流程全解析 + 技术细节 + 面试感受
  • 12.1~12.7
  • 深入解析:HTML `<fieldset>` 标签 `form` 属性深度解析
  • go net/http 学习笔记
  • 手搓LSTM网络——谷歌公司股票价格预测
  • 详细介绍:Java面向对象三大特性详解:封装、继承、多态与接口
  • 2025.12.7日14:10-die down逐渐变弱,逐渐消失
  • 物联网AI模组:连接与智能的融合 - 指南
  • 《Linux框架编程之环境导论》【冯诺依曼体系结构 + 操作系统基本概述】
  • 【题解】CF2174F Mosaic Tree
  • 2025年生成式引擎优化服务商推荐:AI时代流量突围新选择
  • AMap.MarkerCluster
  • 线圈生成工具
  • 14
  • 微软Copilot新增持续监听与视觉分析功能
  • 今天是收到妈妈鼓励的开心日子
  • 联想华硕戴尔微软惠普宏碁三星笔记本在合肥哪里维修靠谱?2025年Q4最新市场评估与一家高价值服务点力荐!