中位数计数

Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 909    Accepted Submission(s): 346

Problem Description
中位数定义为所有值从小到大排序后排在正中间的那个数,如果值有偶数个,通常取最中间的两个数值的平均数作为中位数。

现在有n个数,每个数都是独一无二的,求出每个数在多少个包含其的区间中是中位数。

 
Input
多组测试数据

第一行一个数n(n≤8000)

第二行n个数,0≤每个数≤109,

 
Output
N个数,依次表示第i个数在多少包含其的区间中是中位数。
 
Sample Input
5
1 2 3 4 5
 
Sample Output
1 2 3 2 1
 
Source
思路:枚举每一位为中位数找个数;
   将大于这个数设为1,否则为-1;前后遍历找大于它或小于,具体看代码;
#include<bits/stdc++.h>
using namespace std;
#define ll __int64
#define mod 1000000007
#define inf 999999999
#define pi 4*atan(1)
//#pragma comment(linker, "/STACK:102400000,102400000")
const int N=1e5+,M=*1e5+;
int a[N],b[N];
ll ans[N];
int l[M];
int r[M];
int main()
{
int x,y,z,i,t;
int T;
while(~scanf("%d",&x))
{
memset(ans,,sizeof(ans));
for(i=;i<=x;i++)
scanf("%d",&a[i]);
for(i=;i<=x;i++)
{
for(t=;t<=x;t++)
{
if(a[t]==a[i])
b[t]=;
else
b[t]=a[t]>a[i]?:-;
}
int flag=;
for(t=i;t>;t--)
flag+=b[t],l[flag]++;
flag=;
for(t=i;t<=x;t++)
flag-=b[t],r[flag]++;
for(t=;t<=;t++)
ans[i]+=(ll)l[t]*r[t],l[t]=r[t]=;
}
for(i=;i<=x;i++)
printf("%I64d%c",ans[i],(i==x)?'\n':' ');
} return ;
}

hdu 5701 中位数计数 思路题的更多相关文章

  1. HDU 5701 ——中位数计数——————【思维题】

    中位数计数 Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Subm ...

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

    中位数计数 Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Sub ...

  3. HDU 5701 中位数计数 (思维题)

    题目链接 Problem Description 中位数定义为所有值从小到大排序后排在正中间的那个数,如果值有偶数个,通常取最中间的两个数值的平均数作为中位数. 现在有n个数,每个数都是独一无二的,求 ...

  4. HDU 5701 中位数计数

    这题真的很恶心,做了一天,最后问学长,才懂题意是什么,原来我一直都没读懂题.这我真的就无语了,你的题意多两句话会死啊?你测试样例多两个例子就不行啊?真蛋疼,题意都不懂,还做个shi? 题里说的是区间, ...

  5. HDU 5701 中位数计数 暴力

    老题了,附上黄学长链接一发,直接改改就AC了,http://hzwer.com/1216.html #include <cstdio> #include <iostream> ...

  6. BZOJ 1303: [CQOI2009]中位数图(思路题)

    传送门 解题思路 比较好想的思路题.首先肯定要把原序列转化一下,大于\(k\)的变成\(1\),小于\(k\)的变成\(-1\),然后求一个前缀和,还要用\(cnt[]\)记录一下前缀和每个数出现了几 ...

  7. hdu 5056(尺取法思路题)

    Boring count Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tota ...

  8. 51nod 1682 中位数计数(前缀和)

    51nod 1682 中位数计数 思路: sum[i]表示到i为止的前缀和(比a[i]小的记为-1,相等的记为0,比a[i]大的记为1,然后求这些-1,0,1的前缀和): hash[sum[i]+N] ...

  9. hdu 5701(区间查询思路题)

    中位数计数 Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Subm ...

随机推荐

  1. 【BZOJ1458】士兵占领 最小流

    [BZOJ1458]士兵占领 Description 有一个M * N的棋盘,有的格子是障碍.现在你要选择一些格子来放置一些士兵,一个格子里最多可以放置一个士兵,障碍格里不能放置士兵.我们称这些士兵占 ...

  2. Thrift Expected protocol id ffffff82 but got 0

    如果服务端配的也是noblock=false;客户端不能改成noblock=true;

  3. mysql max_allowed_packet参数值改大后,莫名被还原

    mysql数据库用innodb引擎,mysql max_allowed_packet在my.cnf中值加大后,够一段时间,系统会莫名把这个参数的值改小. innodb_buffer_pool_size ...

  4. OC开发_代码片段——代码编写简单的tableViewCell

    许久前写的简单的tableView例子,主要针对处理缓存.协议.数据源datasource.局部刷新等问题进行解析. 其实这是一篇不全面的记录,只是用来记录一些备忘的东西,更全面的是使用TablVie ...

  5. 国外DNS服务器总结

    国外12个免费的DNS DNS(即Domain Name System,域名系统),是因特网上作为域名和IP地址相互映射的一个分布式数据库,能够让用户更方便的访问互联网,而不用去记住能够被机器直接读取 ...

  6. 04Add.ashx(新增班级)

    04Add.html <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <hea ...

  7. hihoCoder_1445_后缀自动机二·重复旋律5

    #1445 : 后缀自动机二·重复旋律5 时间限制:10000ms 单点时限:2000ms 内存限制:512MB 描述 小Hi平时的一大兴趣爱好就是演奏钢琴.我们知道一个音乐旋律被表示为一段数构成的数 ...

  8. html锚点的作用和js选项卡锚点跳转的使用

    location是javascript里边管理地址栏的内置对象,比如location.href就管理页面的url,用location.href=url就可以直接将页面重定向url.而location. ...

  9. MySQL插入性能优化(转)

    原文:http://tech.uc.cn/?p=634 对于一些数据量较大的系统,数据库面临的问题除了查询效率低下,还有就是数据入库时间长.特别像报表系统,每天花费在数据导入上的时间可能会长达几个小时 ...

  10. linux内存管理之vmalloc函数分析

    2017-07-09 今天周末,闲来无事聊聊linux内核内存分配那点事……重点在于分析vmalloc的执行 流程 以传统x86架构为例,内核空间内存(3G-4G)主要分为三大部分:DMA映射区,一致 ...