hdu5701-中位数计数
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5701
题目:
现在有n个数,每个数都是独一无二的,求出每个数在多少个包含其的区间中是中位数。
第二行n个数,0≤每个数≤10^9
题目分析:这题显然满足条件的区间必是含奇数个数的区间,对于每个数,先往右扫一遍,求得其右边比其大的和比其小的数的个数的差x,然后再往左扫一遍,求其左边比起小的数和比起大的数的差,若一个数在这个区间为中位数,则若其右边比它大的比比它小的多x(有点绕),则其左边相反小的要比大的多x,这样x才能正好在中间位置,用一个数组记录一下差值为某个数的个数即可,注意要算上这个数自己。
注意:输入的n个数,是无序数列,这里也不能对其进行排序后再判断。
原文:https://blog.csdn.net/tc_to_top/article/details/51477047
/* HDU5701 中位数计数 */ #include <iostream>
#include <cstring> using namespace std; const int MAXN = ; int v[MAXN+], count[*(MAXN+)]; int main()
{
int n, ans, cnt; while(cin >> n) {
for(int i=; i<=n; i++)
cin >> v[i]; for(int i=; i<=n; i++) {
memset(count, , sizeof(count)); cnt = ;
count[n]++;
for(int j=; j<i; j++) {
if(v[i - j] < v[i])
cnt--;
else
cnt++;
count[n + cnt]++;
} cnt = ;
ans = count[n];
for(int j=; i+j<=n; j++) {
if(v[i+j] < v[i])
cnt--;
else
cnt++;
ans += count[n - cnt];
}
if(i==n)
cout << ans << endl;
else
cout << ans << " ";
}
} return ;
}
hdu5701-中位数计数的更多相关文章
- hdu-5701 中位数计数(中位数)
题目链接: 中位数计数 Problem Description 中位数定义为所有值从小到大排序后排在正中间的那个数,如果值有偶数个,通常取最中间的两个数值的平均数作为中位数. 现在有nn个数,每个 ...
- ACM学习历程—HDU5701 中位数计数(中位数 && 计数排序)
http://acm.hdu.edu.cn/showproblem.php?pid=5701 这是这次百度之星初赛2B的第六题.之前白山云做过类似的题,省赛完回来,我看了一下大概就有这样的思路:首先枚 ...
- 百度之星 hdu5701 中位数计数
http://acm.hdu.edu.cn/showproblem.php?pid=5701 给出一个序列,取其中的任何一个连续的序列,该序列的数从小到大排列,待更新,,, #include<i ...
- 51nod 1682 中位数计数
1682 中位数计数基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 中位数定义为所有值从小到大排序后排在正中间的那个数,如果值有偶数个,通常取最中间的两个数值的平均 ...
- 51nod 1682 中位数计数(前缀和)
51nod 1682 中位数计数 思路: sum[i]表示到i为止的前缀和(比a[i]小的记为-1,相等的记为0,比a[i]大的记为1,然后求这些-1,0,1的前缀和): hash[sum[i]+N] ...
- 51 nod 1682 中位数计数
题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1682 1682 中位数计数 基准时间限制:1 秒 空间限制: ...
- 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 ...
- HDU 5701 中位数计数
这题真的很恶心,做了一天,最后问学长,才懂题意是什么,原来我一直都没读懂题.这我真的就无语了,你的题意多两句话会死啊?你测试样例多两个例子就不行啊?真蛋疼,题意都不懂,还做个shi? 题里说的是区间, ...
随机推荐
- 【XSY3156】简单计数II 容斥 DP
题目大意 定义一个序列的权值为:把所有相邻的相同的数合并为一个集合后,所有集合的大小的乘积. 特别的,第一个数和最后一个数是相邻的. 现在你有 \(n\) 种数,第 \(i\) 种有 \(c_i\) ...
- git 忽略部分文件类型的同步
场景 利用 pycharm 进行代码操作的时候会自动创建 .idea/ 文件夹 特么我每次随便做点操作.这里面的东西也会随着自动改一些 一开始开始无视 如果是多人协同开发会导致代码合并相关的问题 因此 ...
- magento 2 Check https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors for more info on how to handle out of memory errors.%
Check https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors for more info on h ...
- Memory Layout for Multiple and Virtual Inheritance
Memory Layout for Multiple and Virtual Inheritance(By Edsko de Vries, January 2006)Warning. This art ...
- [Ynoi2018]五彩斑斓的世界
题目描述 二阶堂真红给了你一个长为n的序列a,有m次操作 1.把区间[l,r]中大于x的数减去x 2.查询区间[l,r]中x的出现次数 题解 做YNOI真**爽... 我们发现这道题的操作非常诡异,把 ...
- Day048--jQuery自定义动画和DOM操作
内容回顾 BOM location.reload() 全局刷新页面 location.href location.hash location.pathname location.hostname lo ...
- ASP.NET知识点汇总
一 ,html属性20181113常用的居中方法1 text-align2 float3 margin (margin-left matgin-right margin-bottom margin-t ...
- Pandas系列(六)-时间序列详解
内容目录 1. 基础概述 2. 转换时间戳 3. 生成时间戳范围 4. DatetimeIndex 5. DateOffset对象 6. 与时间序列相关的方法 6.1 移动 6.2 频率转换 6.3 ...
- SSH框架之hibernate《三》
Hibernate03 一.多表设计 1.1多表设计的总则 问题:我们为什么要学习多表映射? 答: ...
- 对评分矩阵进行分解,SVD与LSI
摘自 推荐系统 https://www.cnblogs.com/lzllovesyl/p/5243370.html 一.SVD奇异值分解 1.SVD简介 SVD(singular value deco ...