hdu5857模拟

原创 2016年08月31日 10:47:12

所有的情况都可以转化成分离和相交两种情况,再分类讨论

#include <cmath>
#include <cstdio>
#include <iostream>
using namespace std;

const int maxn=100010;

int 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];
            else
                return a[l2+len/2-1];
        }
    }
}

int main()
{
    int t;
    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));
            else
                printf("%.1f\n",0.5*solve(len/2)+0.5*solve(len/2+1));
        }
    }
    return 0;
}

Median(HDU-5857)

点击打开原题链接 Problem Description There is a sorted sequence A of length n. Give you m queries, each ...

2016多校训练Contest10: 1001 Median hdu5857

Problem Description There is a sorted sequence A of length n. Give you m queries, each one contai...
  • lqybzx
  • lqybzx
  • 2016年08月18日 23:22
  • 287

HDU-5857-Median

链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5857 题意:求有序序列中[l1,r1],[l2,r2]两端区间的中间数 题解:由于是有序序...

Median - hdu5857

题目链接 题意:给你一个包含n个数的序列和m个询问,每个询问包含两个区间,求出这两个区间包含的所有数的中位数。 思路:分两种情况讨论即可,一种是两区间没有交集,一种是有交集。 代码: /// ...

【HDU 1495】 非常可乐 (bfs + 模拟)

大家一定觉的运动以后喝可乐是一件很惬意的事情,但是seeyou却不这么认为。因为每次当seeyou买了可乐以后,阿牛就要求和seeyou一起分享这一瓶可乐,而且一定要喝的和seeyou一样多。但see...
  • Wyx_wx
  • Wyx_wx
  • 2017年07月26日 22:24
  • 108

[模拟] 多校联合第三场 painter HDU 5319

PainterTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Su...

HDU 4930 斗地主模拟

点击打开链接 题意:给两个人的牌,第一个是地主的第二个是农民的,现在问你第一个这回合能否胜利,胜利条件是农民没有比地主出的大的牌或者地主将牌打光了,然后它的大小比较什么的上面给了与我们平时玩的没什么差...
  • Dan__ge
  • Dan__ge
  • 2016年07月14日 12:36
  • 205

hdu 4515 小Q系列故事——世界上最遥远的距离(模拟)

小Q系列故事——世界上最遥远的距离 Time Limit: 500/200 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)...
  • acm_cxq
  • acm_cxq
  • 2016年06月26日 14:41
  • 414

HDU 4431 Mahjong (麻将、神坑模拟题)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4431 题面: Mahjong Time Limit: 4000/2000 MS (J...

简单浮点数除法模拟-hdu-4493-Tutor

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4493 题目意思: 给小数点后两位的12个月的工资,求出平均工资,输出离小数点后第二位最近的...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:hdu5857模拟
举报原因:
原因补充:

(最多只允许输入30个字)