HDU 5701 ——中位数计数——————【思维题】
中位数计数
Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 764 Accepted Submission(s): 309
现在有n个数,每个数都是独一无二的,求出每个数在多少个包含其的区间中是中位数。
第一行一个数n(n≤8000)
第二行n个数,0≤每个数≤109,
1 2 3 4 5
解题思路:参考:http://blog.csdn.net/jtjy568805874/article/details/51477656 思路真的很巧妙。
暴力枚举每个数a[i],然后枚举前面j位置,记录a[j]到a[i]之间a[j]比a[i]小或大的数的个数,然后枚举后面j的位置,累计a[i]到a[j]之间的a[j]比a[i]大或小的数的个数。
#include<stdio.h>
#include<algorithm>
#include<string.h>
#include<math.h>
#include<string>
#include<iostream>
#include<queue>
#include<stack>
#include<map>
#include<vector>
#include<set>
using namespace std;
typedef long long LL;
#define mid (L+R)/2
#define lson rt*2,L,mid
#define rson rt*2+1,mid+1,R
#pragma comment(linker, "/STACK:102400000,102400000")
const int maxn = 1e5+300;
const int INF = 0x3f3f3f3f;
typedef long long LL;
typedef unsigned long long ULL;
int a[maxn], cnt[maxn];
int main(){
int n;
while(scanf("%d",&n)!=EOF){
for(int i = 1; i <= n; i++){
scanf("%d",&a[i]);
}
for(int i = 1; i <= n; i++){
for(int j = 1; j <= 2*n; j++){
cnt[j] = 0;
}
cnt[n] = 1;
int x = 0;
for(int j = i-1; j >= 1; j--){
if(a[j] < a[i]){
x--;
}else{
x++;
}
cnt[n+x]++;
}
int ans = cnt[n];
x = 0;
for(int j = i+1; j <= n; j++){
if(a[j] > a[i]){
x--;
}else{
x++;
}
ans += cnt[n+x];
}
printf("%d",ans);
printf("%c",i == n ? '\n' : ' ');
}
}
return 0;
}
HDU 5701 ——中位数计数——————【思维题】的更多相关文章
- 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 中位数计数 (思维题)
题目链接 Problem Description 中位数定义为所有值从小到大排序后排在正中间的那个数,如果值有偶数个,通常取最中间的两个数值的平均数作为中位数. 现在有n个数,每个数都是独一无二的,求 ...
- HDU 5701 中位数计数
这题真的很恶心,做了一天,最后问学长,才懂题意是什么,原来我一直都没读懂题.这我真的就无语了,你的题意多两句话会死啊?你测试样例多两个例子就不行啊?真蛋疼,题意都不懂,还做个shi? 题里说的是区间, ...
- HDU 5701 中位数计数 暴力
老题了,附上黄学长链接一发,直接改改就AC了,http://hzwer.com/1216.html #include <cstdio> #include <iostream> ...
- BZOJ4401: 块的计数 思维题
Description 小Y最近从同学那里听说了一个十分牛B的高级数据结构——块状树.听说这种数据结构能在sqrt(N)的时间内维护树上的各种信息,十分的高效.当然,无聊的小Y对这种事情毫无兴趣,只是 ...
- hdu - 1172 猜数字 (思维题)
http://acm.hdu.edu.cn/showproblem.php?pid=1172 这个题换一种想法,可以找出四位数中所有满足条件的数看是否只有一个. #include <iostre ...
- HDU 5752 Sqrt Bo (思维题) 2016杭电多校联合第三场
题目:传送门. 题意:一个很大的数n,最多开5次根号,问开几次根号可以得到1,如果5次还不能得到1就输出TAT. 题解:打表题,x1=1,x2=(x1+1)*(x1+1)-1,以此类推.x5是不超过l ...
- HDU - 5963 朋友(思维题)
题干 B君在围观一群男生和一群女生玩游戏,具体来说游戏是这样的: 给出一棵n个节点的树,这棵树的每条边有一个权值,这个权值只可能是0或1. 在一局游戏开始时,会确定一个节点作为根.接下来从女生开始,双 ...
随机推荐
- Backup--清理MSDB中的备份记录
每次数据库备份或日志备份,都会向msdb中多多张表插入数据,如果备份比较频繁的话,需要定期清理. 使用sp_delete_backuphistory来清理以下表中数据: backupfile back ...
- .netcore 与 Docker
CentOS下Docker与.netcore(一) 之 安装 CentOS下Docker与.netcore(二) 之 Dockerfile CentOS下Docker与.netcore(三)之 三剑客 ...
- UVA 10881
题目就不再写了,直接开始 [分析]蚂蚁碰撞掉头,其实不用考虑掉头问题,直接让“掉头”等价于“对穿而过”, 然后调换它们的状态(感觉像是障眼法hhh),只要分清楚“谁是谁”.因为“掉头”,所以蚂蚁 的相 ...
- OI网络流 简单学习笔记
持续更新! 基本上只是整理了一下框架,具体的学习给出了个人认为比较好的博客的链接. ..怎么说呢,最基础的模板我就我不说了吧qwq,具体可以参考一下这位大佬写的博客:最大流,最小割,费用流 费用流 跑 ...
- Windows IIS ASP.NET Core中创建和使用HTTPS自签名证书
为什么要用Https就不说了. 第一步:创建自签名的证书.在Windows下开启PowerShell,将以下文字粘贴进去: # setup certificate properties includi ...
- MINIUI监听处理"drawcell"事件
http://www.blogjava.net/grid/archive/2012/11/02/390693.html jQuery MiniUI 开发教程 表格控件 表格:自定义单元格(三) ...
- js实现checkbox全选,全部选和反选效果
效果: 源码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...
- ONTAK2010 Peaks加强版(离线&在线)
题面 弱化版:luogu 强制在线版:bzoj 题解 本题有两种解法 离线算法:线段树合并 先看一道简单题[USACO18JAN]MooTube 本题就是在此基础上求第\(k\)高的点 首先把询问和路 ...
- Little Sub and Piggybank (杭师大第十二届校赛G题) DP
题目传送门 题意:每天能往存钱罐加任意实数的钱,每天不能多于起那一天放的钱数.如果某一天的钱数恰好等于那天的特价商品,则可以买,求最后的最大快乐值. 思路:先来一段来自出题人的题解: 显然的贪心:如果 ...
- [转] HBase 深入浅出
[From] https://www.ibm.com/developerworks/cn/analytics/library/ba-cn-bigdata-hbase/index.html HBase ...