写这道题真是痛苦啊,边写边在女队的讨论组里抱怨“我真的不会写大模拟啊”、“WA到死了已经”、“if else if else很好写么!!?”诸如此类,我已经做好赛场上碰到大模拟就丢给队友的准备了。。

不过还是要感谢一下这道题,我去学了一下对拍,虽然很简单,但是之前因为一直用不上所以一直没有学。苦兮兮的是我造了一些小范围的所有可能的样例,对拍都没错了,交上去还是WA。想了想这是去年的多校题,数据我应该还留着,跑了下发现爆int了,改成long long果断AC,一口老血啊。之前不是没有想到,只是我搜了几个题解他们都没开long long,觉得肯定是自己的if else写炸了。哎,平时练习干嘛不相信自己一下呢,浪费了这么多时间在一道水题上。。。

代码非常难看,有空学习一下简洁版题解的写法。。

#include <bits/stdc++.h>
using namespace std;
long long a[100005];
int main()
{
//    freopen("1001.in","r",stdin);
//    freopen("2.txt","w",stdout);int t,n,m,l1,r1,l2,r2;double ans; scanf("%d",&t);while (t--) {scanf("%d%d",&n,&m);for (int i=1;i<=n;i++) scanf("%lld",&a[i]);for (int i=0;i<m;i++) {scanf("%d%d%d%d",&l1,&r1,&l2,&r2);if (l1>l2) swap(l1,l2),swap(r1,r2);if (l1<=l2&&r1>=r2) swap(r1,r2);int len1=r1-l1+1,len2=r2-l2+1,len=len1+len2,pos;if (r1<l2) {if (len&1) {pos=len/2+1;if (pos<=len1) ans=a[l1+pos-1];else ans=a[l2+pos-len1-1];}else {pos=len/2;if (pos+1<=len1) ans=0.5*(a[l1+pos-1]+a[l1+pos]);else if (pos>len1) ans=0.5*(a[l2+pos-len1-1]+a[l2+pos-len1]);else ans=0.5*(a[r1]+a[l2]);}}else {int l=l2-l1+1,r=l+2*(r1-l2+1)-1;if (len&1) {pos=len/2+1;if (pos<l) ans=a[l1+pos-1];else if (pos>r) ans=a[pos-r+r1];else ans=a[(pos-l)/2+l2];}else {pos=len/2;if (pos+1<l) ans=0.5*(a[l1+pos-1]+a[l1+pos]);else if (pos+1==l) ans=0.5*(a[l2-1]+a[l2]);else if (pos==r) ans=0.5*(a[r1]+a[r1+1]);else if (pos>r) ans=0.5*(a[pos-r+r1]+a[pos-r+r1+1]);else if ((pos-l)&1) ans=0.5*(a[(pos-l)/2+l2]+a[(pos-l)/2+l2+1]);else ans=a[(pos-l)/2+l2];}}printf("%.1f\n",ans);}}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. 【冷门实用小工具】JAVA和C#轻量级的UML图绘制工具NClass,UML类图编辑器免安装版【亲测有效】
  2. redis安装+redis主从
  3. java打印 a b c,创建一个java程序,按顺序给出3个术语作为输入(a,b,c)打印它们的根...
  4. 影视,高清 音乐 工具
  5. Hibernate3 r的SLF4J问题
  6. c语言程序设计案例教程肖利群,C语言程序设计案例教程
  7. Self-Supervised Curriculum Learning for Spelling Error Correction
  8. 「leetcode」本周小结!(回溯算法系列一)
  9. 国产达梦数据库的结合Enterprise Library的应用开发
  10. 无缝向上滚动文字代码(Js+div),可用在公告栏
  11. poi导出如何设定宽度_POI导出excel列宽自适应
  12. 基于51单片机出租车计费设计(proteus仿真+程序+原理图+设计说明书)
  13. java类加载器不同导致SPI 报错 not a subtype
  14. YARN : FairScheduler深入解析(队列维护,demand、fair share计算)
  15. 北卡罗来纳州立大学计算机科学,北卡罗来纳州立大学计算机科学理学硕士研究生申请要求及申请材料要求清单...
  16. ERP系统更改颜色操作步骤
  17. 问题 F: 求一个3*3矩阵对角线元素之和
  18. MODULE_AUTHOR 功能
  19. Fuzzy Clustering详解
  20. iphone上app store切换国家和地区

热门文章

  1. bmi指数计算器PHP代码,BMI指数计算器
  2. 1【西北师大-2108Java】第一次作业成绩汇总
  3. 通知:大数据技术架构知识库公开
  4. 透过年报看区块链股的含金量:无一披露此业务营收 近5成停留在研究
  5. 基础柱状图的高配-多色柱状图
  6. 从“制造”之城,到“智造”标杆,长沙何以站上发展新高地?
  7. matlab仿真低通滤波,Matlab 低通Butterworth滤波仿真m文件
  8. 你知识付费的钱打水漂,是课程的错吗?
  9. HBase数据模型和表设计思路
  10. 录像机人机界面蓝屏怎么处理