51nod 1682 中位数计数(前缀和)
思路:
sum[i]表示到i为止的前缀和(比a[i]小的记为-1,相等的记为0,比a[i]大的记为1,然后求这些-1,0,1的前缀和);
hash[sum[i]+N](由于sum[i]会小于0,所以要加N)记录在j<i的情况下sum[i]是否出现过,如果在j>=i的情况下,sum[i]还出现过,那么就代表有一个区间满足条件。
代码:
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define mp make_pair
#define pi acos(-1.0)
#define pii pair<int,int>
#define pil pair<int,ll>
#define mem(a,b) memset(a,b,sizeof(a)) const int INF=0x3f3f3f3f;
const int MOD=1e9+;
const int N=8e3+;
//head int a[N];
int sum[N]={};
int hash[N*]={};
int ans[N];
int main()
{
ios::sync_with_stdio(false);
cin.tie();
int n;
cin>>n;
for(int i=;i<=n;i++)cin>>a[i]; for(int i=;i<=n;i++)
{
int temp=;
mem(hash,);
hash[N]=;
for(int j=;j<=n;j++)
{
if(a[j]<a[i])sum[j]=sum[j-]-;
else if(a[j]==a[i])sum[j]=sum[j-];
else if(a[j]>a[i])sum[j]=sum[j-]+;
if(j<i)hash[sum[j]+N]++;
else temp+=hash[sum[j]+N];
}
ans[i]=temp;
} for(int i=;i<=n;i++)
{
cout<<ans[i];
if(i!=n)cout<<" ";
else cout<<endl;
}
return ;
}
51nod 1682 中位数计数(前缀和)的更多相关文章
- 51nod 1682 中位数计数
1682 中位数计数基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 中位数定义为所有值从小到大排序后排在正中间的那个数,如果值有偶数个,通常取最中间的两个数值的平均 ...
- 51nod 1682 中位数计数(差分统计)
中位数定义为所有值从小到大排序后排在正中间的那个数,如果值有偶数个,通常取最中间的两个数值的平均数作为中位数. 现在有n个数,每个数都是独一无二的,求出每个数在多少个包含其的区间中是中位数. 首先,显 ...
- 51 nod 1682 中位数计数
题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1682 1682 中位数计数 基准时间限制:1 秒 空间限制: ...
- hdu-5701 中位数计数(中位数)
题目链接: 中位数计数 Problem Description 中位数定义为所有值从小到大排序后排在正中间的那个数,如果值有偶数个,通常取最中间的两个数值的平均数作为中位数. 现在有nn个数,每个 ...
- hdu 5701 中位数计数 思路题
中位数计数 Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Subm ...
- HDU 5701 中位数计数 百度之星初赛
中位数计数 Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Sub ...
- HDU 5701 ——中位数计数——————【思维题】
中位数计数 Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Subm ...
- [51Nod 1222] - 最小公倍数计数 (..怎么说 枚举题?)
题面 求∑k=ab∑i=1k∑j=1i[lcm(i,j)==k]\large\sum_{k=a}^b\sum_{i=1}^k\sum_{j=1}^i[lcm(i,j)==k]k=a∑bi=1∑kj ...
- ACM学习历程—HDU5701 中位数计数(中位数 && 计数排序)
http://acm.hdu.edu.cn/showproblem.php?pid=5701 这是这次百度之星初赛2B的第六题.之前白山云做过类似的题,省赛完回来,我看了一下大概就有这样的思路:首先枚 ...
随机推荐
- Linux中顿号
``的作用是运行``之间的命令,并且将命令运行的结果返回.一般shell脚本应该是这样:result=`ls -l` (用你的命令替换ls -l,这里只是举例)这样,result就有``里面的运行结果 ...
- Postman: Pre-request Script,设置body 变量
1)Postman Pre-request Script 设置变量名 2)把变量放在body里 3)Send后查看变量是否被替换
- Linux基础命令---swapoff
swapoff 关闭交换分区,同时可以刷新交换分区的缓存.关闭交换分区后,使用free指令查看内存,swap数值会减少.此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE. ...
- jquery一句话实现快速搜索功能
jquery一句话实现快速搜索功能 //快捷搜索公共方法,其中obj为显示行的子节点function filter(obj, filterNameValue){ $(obj).hide().filte ...
- linux chkconfig 管理服务开机自启动
chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息.谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接. 使用语法:chkconfig [--ad ...
- C/C++之学习笔记
[C语言的Static inline 函数的作用] [printf打印格式] %x 打印十六进制 %d 打印十进制 %b 打印二进制 %c 打印字符 %s 打印字符串 %f 打印单精度flo ...
- SQL学习之Can't connect to MySQL server on localhost (10061)
最近升级 了系统,开机后连接MySQL报错,Can't connect to MySQL server on localhost (10061): 估计是升级系统清除了以前的缓存设置,网上很多方法是命 ...
- Python3 解决 'utf-8' codec can't decode byte 0x8b in position 1: invalid start byte
Python3 解决 'utf-8' codec can't decode byte 0x8b in position 1: invalid start byte 一.问题 request.Reque ...
- django 加载静态文件(图片,js,css)
昨天写过一个项目通过django上传展示图片,但是今天写项目的时候发现出现了问题,静态文件加载不出来了,尴尬的一笔~ 记录一下静态文件的使用方法,基础~ ----------------------- ...
- 03: Memcached
目录: 1.1 Memcached简介与安装 1.2 python-memcached模块天生支持集群 1.3 Memcached基本操作 1.1 Memcached简介与安装返回顶部 1.Memca ...