题意:

给出一个有序的数列.
求由 A[l1]~A[r1] 与 A[l2]~A[r2] 组成的新序列的中位数.

题解:

把区间分成三部分,其中一个是相交部分,然后找中位数就好了;

#include <set>
#include <map>
#include <stack>
#include <queue>
#include <deque>
#include <cmath>
#include <vector>
#include <string>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
#define L(i) i<<1
#define R(i) i<<1|1
#define INF  0x3f3f3f3f
#define pi acos(-1.0)
#define eps 1e-9
#define maxn 100100
#define MOD 1000000007int n,m;
int a[100010];
int l1,r1,l2,r2;
int solve(int len)
{if(r1 <= l2){if(r1-l1+1 >= len)return a[l1+len-1];else{len -= r1 - l1 + 1;return a[l2+len-1];}}else{if(l2-l1 >= len)return a[l1+len-1];else if(l2-l1+(r1-l2+1)*2 < len){len -= r1-l1+1;return a[l2+len-1];}else{len -= l2 - l1;if(len & 1)return a[l2+len/2];elsereturn a[l2+len/2-1];}}
}int main()
{//freopen("1001.in","r",stdin);//freopen("out.txt","w",stdout);int t,C = 1;scanf("%d",&t);while(t--){scanf("%d%d",&n,&m);for(int i = 1; i <= n; i++)scanf("%d",&a[i]);while(m--){scanf("%d%d%d%d",&l1,&r1,&l2,&r2);if(l1 > l2)swap(l1,l2);if(r1 > r2)swap(r1,r2);int len = r1 - l1 + 1 + r2 - l2 + 1;if(len & 1)printf("%.1f\n",1.0*solve(len/2+1));elseprintf("%.1f\n",0.5*solve(len/2)+0.5*solve(len/2+1));}}return 0;
}

hdu 5857 Median ★相关推荐

  1. HDU - 7029 Median 思维

    传送门 文章目录 题意: 思路: 题意: 给你1,2,...,n1,2,...,n1,2,...,n一共nnn个数,你需要将其分成mmm组,使得每组的中位数为bib_ibi​,保证bib_ibi​互不 ...

  2. HDU - 3194 Median

    OJ地址:https://vjudge.net/problem/HDU-3194 This problem is also easy. Given N numbers, and please find ...

  3. HDU 3282 Running Median 动态中位数,可惜数据范围太小

    Running Median Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pi ...

  4. HDOJ 1157 HDU 1157 Who's in the Middle ACM 1157 IN HDU

    MiYu原创, 转帖请注明 : 转载自 ______________白白の屋   题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=1157 题目描述: ...

  5. 2021HDU多校6 - 7029 Median(思维)

    题目链接:点击查看 题目大意:初始时给出 nnn 个数字 1,2,3,...,n{1,2,3,...,n}1,2,3,...,n,再给出 mmm 个中位数,问是否能将 nnn 个数字分到 mmm 个组 ...

  6. HDU 4389 - X mod f(x)

    题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=4389 2012多校,第9场,1010 . 问题是,询问区间内 存在多少个 哈沙德数(Harshad ...

  7. hdu 4389 囧,打表

    http://acm.hdu.edu.cn/showproblem.php?pid=4389 题意 :一个数能被他各个位数之和整除则符合要求,给L,R,问区间里有多少个数符合要求. 囧,居然打表就能过 ...

  8. PyTorch 笔记(07)— Tensor 的归并运算(torch.mean、sum、median、mode、norm、dist、std、var、cumsum、cumprod)

    1. Tensor 归并运算函数 此类操作会使输出形状小于输入形状,并可以沿着某一维度进行指定操作,如加法, 既可以计算整个 tensor 的和,也可以计算 tensor 每一行或者 每一列的和, 常 ...

  9. HDU——1106排序(istringstream的使用、STLvector练习)

    排序 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...

  10. hdu 5438 Ponds 拓扑排序

    Ponds Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/contests/contest_showproblem ...

最新文章

  1. 利用Matlab优化工具箱解数独问题
  2. 人工智能:一种现代方法汇总
  3. QT乱码总结7.编码测试和总结二
  4. gdp笔记本 linux,linux中如何使用微软鼠标的第4、5键
  5. 双绞线传输距离_视频监控系统中布线常用传输线缆分类及制作方法
  6. “价值互联网”时代,带你读懂区块链
  7. office linux版本好用吗,Linux最好的最适合新手的版本是什么
  8. 灵格斯与众多常用软件的冲突问题
  9. 一流科技登上开源供应商名录
  10. mysql一个汉字是几个字节_mysql里一个中文汉字占多少字节数?
  11. libreCAD源码阅读笔记4
  12. 动态测试与静态测试--手工测试和自动化测试
  13. 简评几款开源RISC-V处理器
  14. git学习笔记——Linux和Windows下git的基本操作
  15. SSM毕设项目酒店餐饮管理系统ls1a2(java+VUE+Mybatis+Maven+Mysql)
  16. python中raw是什么意思_对于Python中RawString的理解
  17. 如何使用excel批量生成sql语句
  18. Ubuntu-20.04-noetic安装cartographer100%成功
  19. linux下c语言写界面,利用C语言绘制操作系统图像界面
  20. 教你批量查询FEDEX国际件快递单号的详细物流情况

热门文章

  1. 刷网课被告非法控制计算机信息系统罪,您好,请问一下网上代刷网课叫非法控制计算...
  2. WPS 关闭热点推送通知
  3. .NET Core 新手上路
  4. arduino定时器控制舵机_Arduino通过串口控制舵机角度
  5. 转载: Fisher精确检验概述
  6. 加法C语言基础程序,C语言菜鸟基础教程之加法
  7. python对图片进行裁剪_python利用四个坐标点对图片进行裁剪
  8. 关于cups打印管理详细整理
  9. python函数式编程
  10. Source Generator实战