前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >HDU 5701 中位数计数 百度之星初赛

HDU 5701 中位数计数 百度之星初赛

作者头像
ShenduCC
发布2018-04-27 10:55:33
4680
发布2018-04-27 10:55:33
举报
文章被收录于专栏:算法修养算法修养

中位数计数

Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)

Total Submission(s): 1301    Accepted Submission(s): 487

Problem Description

中位数定义为所有值从小到大排序后排在正中间的那个数,如果值有偶数个,通常取最中间的两个数值的平均数作为中位数。 现在有个数,每个数都是独一无二的,求出每个数在多少个包含其的区间中是中位数。

Input

多组测试数据 第一行一个数 第二行个数,每个数,

Output

个数,依次表示第个数在多少包含其的区间中是中位数。

Sample Input

代码语言:javascript
复制
5
1 2 3 4 5

Sample Output

代码语言:javascript
复制
1 2 3 2 1
暴力枚举,对于每一个点,枚举包含这个点的所有区间,看有所多少区间符合条件如果区间符合条件,那么区间里大于这个点的个数一定等于小于这个点的个数枚举区间,如果两个for循环肯定超时,我们可以不用枚举区间,以这个点往右衍生,记录所有大于点的个数和小于点的个数的差值,用数组记录,这样右边所有的差值都记录下来,再去向左衍生,每次产生的差值都给答案加上注意差值为0的情况#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <algorithm>
#include <math.h>
#include <string.h>

using namespace std;
int n;
int a[10000];
int b[10000*2];
int res;
int main()
{
    while(scanf("%d",&n)!=EOF)
    {
        for(int i=1;i<=n;i++)
            scanf("%d",&a[i]);

        for(int i=1;i<=n;i++)
        {
            int x=0;

            memset(b,0,sizeof(b));
            res=1;
            for(int j=i+1;j<=n;j++)
            {
                if(a[j]>a[i]) x++;
                else x--;
                b[8000+x]++;
                 if(x==0)
                    res++;
            }
            x=0;
            for(int j=i-1;j>=1;j--)
            {
                if(a[j]>a[i]) x--;
                else x++;
                res+=b[8000+x];
                if(x==0)
                    res++;
            }


            if(i!=n)
                printf("%d ",res);
            else

                printf("%d",res);
        }
        printf("\n");
    }
    return 0;
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-09-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 中位数计数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档