原题链接

显然由题意描述可知(所有数皆是独一无二的),所有符合条件的区间皆为奇数长度的区间。

对于一个区间(l,r),定义up为区间内大于x的数的个数,down为小于x的数的个数,若x为中位数则有up(x)=down(x),cnt[x]表示up-down=x的区间有多少个。

假设x在区间(l,r)中的位置为pos,x为中位数则要满足在(l,pos-1)中up-down=在(pos+1,r)中down-up。

每次枚举一个数a[i],统计在区间(l,i)内up和down的值并更新cnt[up-down]的值,并不断向左扩展l,右区间也同样操作。

#include<map>
#include<set>
#include<list>
#include<cmath>
#include<ctime>
#include<queue>
#include<stack>
#include<cstdio>
#include<string>
#include<bitset>
#include<vector>
#include<utility>
#include<numeric>
#include<cstring>
#include<iterator>
#include<iostream>
#include<algorithm>
#include<functional>
using namespace std;
#define fi first
#define se second
#define MP make_pair
#define ll long long
#define PR pair<ll,ll>
#define LS (root<<1)
#define RS ((root<<1)|1)
#define LSON LS,l,mid
#define RSON RS,(mid+1),r
#define MID mid=((l+r)/2)
#define mm(a,b) memset(a,b,sizeof(a))
#define rep(a,b,c) for(int a=b;a<c;a++)
#define INF 0x3f3f3f3f3f3f3f3f
#define eps 1e-9
#define Pi acos(-1.0)
#define MAXN 8005
#define MAXE 3000050
#define Inf 9999999
#define debug puts("**************");
template<class T> T f_max(T a, T b){ return a > b ? a : b; }
template<class T> T f_min(T a, T b){ return a < b ? a : b; }
template<class T> T f_abs(T a){ return a > 0 ? a : -a; }
template<class T> T gcd(T a, T b){ return b ? gcd(b, a%b) : a; }
template<class T> T lcm(T a, T b){ return a / gcd(a, b)*b; }
const int mod=1000007;
int n;
int a[MAXN];
int cnt[2*MAXN];
int main(){int T, cas=1;int ans=0;while(~scanf("%d",&n)){for(int i=1;i<=n;i++){scanf("%d",&a[i]);
//            b[i]=a[i];}for(int i=1;i<=n;i++){ans=0; mm(cnt,0);int up, down;up=down=0;cnt[8000]++;for(int j=i-1;j>=1;j--){ //向左扩展if(a[j]>a[i]) up++;if(a[j]<a[i]) down++;cnt[down-up+8000]++;}up=down=0;for(int j=i;j<=n;j++){ //向右扩展if(a[j]>a[i]) up++;if(a[j]<a[i]) down++;ans+=cnt[up-down+8000];}printf("%d%c",ans,i==n?'\n':' ');}}return 0;
}

51nod 1682相关推荐

  1. html实现log函数,math。h中的log函数的应用

    以10为底的log函数: 形式为 double  log10(double  x) 以e为底的log函数(即 ln)double log (double x) 如何表达log 以a为底b的对数: 用换 ...

  2. 51nod 1617 奇偶数组

    传送门 回来看一眼51nod,发现自己掉到rank4了,赶紧切道题回rank3. 一眼不会做,这种东西应该慢慢找规律吧--然后看到数据范围其实比较小,应该是单次log的,那是不是可以分治啊. #inc ...

  3. 51NOD 1773:A国的贸易——题解

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1773 参考1:FWT讲解 https://www.cnblogs.com ...

  4. 51nod 1040:最大公约数之和(数论)

    题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1040 给出一个n,求1-n这n个数,同n的最大公约数的和. ...

  5. (DP)51NOD 1183 编辑距离

    编辑距离,又称Levenshtein距离(也叫做Edit Distance),是指两个字串之间,由一个转成另一个所需的最少编辑操作次数.许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除 ...

  6. 斜率小于0的连线数量 51Nod - 1107 (树状数组+离散化)

    二维平面上N个点之间共有C(n,2)条连线.求这C(n,2)条线中斜率小于0的线的数量. 二维平面上的一个点,根据对应的X Y坐标可以表示为(X,Y).例如:(2,3) (3,4) (1,5) (4, ...

  7. 51Nod 1003 阶乘后面0的数量(数学,思维题)

    1003 阶乘后面0的数量 基准时间限制:1 秒 空间限制:131072 KB 分值: 5         难度:1级算法题 n的阶乘后面有多少个0? 6的阶乘 = 1*2*3*4*5*6 = 720 ...

  8. 51nod 1270 数组的最大代价

    1270 数组的最大代价 题目来源: HackerRank 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 数组A包含N个元素A1, A2......AN.数组B包 ...

  9. 51nod 算法马拉松18 B 非010串 矩阵快速幂

    51nod 算法马拉松18 B 非010串 矩阵快速幂 非010串 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 如果一个01字符串满足不存在010这样的子串,那么称它为非010串 ...

  10. [51nod]1284 2 3 5 7的倍数(容斥原理)

    题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1284 1 #include <iostream> ...

最新文章

  1. webstorm2018修改运行web page端口号,并且让web在本地局域网内用IP访问
  2. mysql 修复_修复崩溃的Mysql
  3. Google Adsense实用防踢技巧总结
  4. 计算机右键管理中没有用户管理,我的电脑右键菜单中没有管理选项如何解决? 我的电脑右键菜单中没有管理选项解决的方法有哪些?...
  5. 算法题——Cantor表
  6. VS调试时怎么跳过for循环?
  7. win10系统同时安装python2和python3
  8. 湖北省计算机技能高考c语言试题及答案,最新湖北省技能高考C语言测试题
  9. android jni framework,Android Framework层的JNI机制(二)
  10. python importsystem
  11. 2018只剩32天,动着心思想跳槽的你,还要YY到什么时候
  12. 发布 CodeAuto 代码生成器 2.1.0.461 中英文双语版
  13. linux tick 函数,Linux上的GetTickCount函数
  14. 电路交换、报文交换和分组交换的区别
  15. 加域电脑如何取消锁屏
  16. mt7615 配置选项介绍
  17. python自动拼图_一种更高效的M*N拼图自动还原算法解析
  18. Erlang和Elixir,第5部分:Phoenix框架
  19. 高端加密IC开发常见问题
  20. 基于GPS的公交车站点播报调试第四天

热门文章

  1. IndexError: index 0 is out of bounds for axis 0 with size 0
  2. 除了方文山,用TA你也能帮周杰伦写歌词了
  3. ThinkPHP--initialize()方法
  4. php生成word,并下载
  5. 浅谈什么是SEO?如何优化SEO?
  6. win7系统安装SQL Server 2005开发版步骤详解
  7. rank函数怎么用oracle,Oracle学习教程:rank函数的使用
  8. BLE技术知识点大全
  9. PUN☀️八、拓展网络同步:RPCs 和 Properties
  10. 读取excel数据的方式整理