PTA甲-[中位数(25分)] 归并排序思想

该博客讨论了如何在面对大型数据集时,利用归并排序的思想来解决寻找两个递增序列中位数的问题。由于直接操作会导致超时,作者提出了相应的解决方案。输入包括两个递增序列,输出是这两个序列的中位数。样例输入是两个序列,输出为13,表明应用归并排序策略可以有效地找到中位数。
摘要由CSDN通过智能技术生成

题目

AW中位数
Median (25 分)
给定一个 N 个整数构成的递增序列,中位数是中间位置的数字。

如果一共有奇数个数,则中位数是最中间的数;如果一共有偶数个数,则中位数是中间偏左的数。

例如 S1={11,12,13,14} 的中位数是 12,S2={9,10,15,16,17} 的中位数是 15。

两个序列的中位数定义为包含两个序列的所有元素的非递减序列的中位数。

例如,S1 和 S2 的中位数为 13。

给定两个递增序列,请你找出它们的中位数。

输入格式
共两行,每行包含一个递增序列。

每行首先包含一个整数 N,表示序列长度,接下来包含 N 个整数,表示完整序列。

输出格式
输出一个整数,表示两个序列的中位数。

数据范围
1≤N≤2×105,
序列中的整数都在 int 范围内。

输入样例:
4 11 12 13 14
5 9 10 15 16 17
输出样例:
13

分析

不能用普通方法做,每一行的N范围都是2e5,会超时

代码(归并排序思想)
#include<iostream>
#include<algorithm>
using namespace std;
int n,m;
int a[200010],b[200010],c[400020];

int main(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值