传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=4759

【题解】

排序,从大到小插入,树状数组统计。

# include <vector>
# include <stdio.h>
# include <string.h>
# include <iostream>
# include <algorithm>
// # include <bits/stdc++.h> using namespace std; typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;
const int M = 2e5 + , N = 4e5 + ;
const int mod = 1e9+; # define RG register
# define ST static # define lb(x) (x&(-x))
struct BIT {
int c[N], n;
inline void set(int _n) {
memset(c, , sizeof c);
n = _n;
}
inline void edt(int x, int d) {
for (; x<=n; x+=lb(x)) c[x] += d;
}
inline int sum(int x) {
int ret = ;
for (; x; x-=lb(x)) ret += c[x];
return ret;
}
inline int sum(int x, int y) {
if(x>y) return ;
return sum(y) - sum(x-);
}
}T; int n;
vector<int> ps;
struct pa {
int x, pos;
pa() {}
pa(int x, int pos) : x(x), pos(pos) {}
friend bool operator < (pa a, pa b) {
return a.x > b.x;
}
}p[M]; int L[M], R[M]; int main() {
cin >> n;
T.set(n);
for (int i=; i<=n; ++i) {
scanf("%d", &p[i].x);
p[i].pos = i;
ps.push_back(p[i].x);
} sort(ps.begin(), ps.end());
ps.erase(unique(ps.begin(), ps.end()), ps.end()); for (int i=; i<=n; ++i) p[i].x = lower_bound(ps.begin(), ps.end(), p[i].x) - ps.begin() + ; sort(p+, p+n+); for (int i=; i<=n; ++i) {
int j = i;
while(j<n && p[j+].x == p[i].x) ++j;
for (int k=i; k<=j; ++k) {
L[k] = T.sum(, p[k].pos-);
R[k] = T.sum(p[k].pos+, n);
}
for (int k=i; k<=j; ++k) T.edt(p[k].pos, );
i = j;
} int ans = ;
for (int i=; i<=n; ++i)
if(max(R[i], L[i]) > *min(R[i], L[i]))
++ans; cout << ans << endl; return ;
}

最新文章

  1. NOIP2008双栈排序[二分图染色|栈|DP]
  2. 基于C#在WPF中使用斑马打印机进行打印【转】
  3. AutoLayout ViewDidAppear 小坑
  4. 博文写作——摘要&amp;摘要图标
  5. Eclipse的安装和java环境变量的设置
  6. Android 定时器
  7. unity缓存和浏览器缓存
  8. CSS之自适应布局webkit-box
  9. 发现UC/OS-III源码有一处不明白!会不会是BUG.高手过来看看!
  10. 【转载】LVS+MYCAT+读写分离+MYSQL主备同步部署手册(邢锋)
  11. codeforces Winner
  12. DevExpress中,添加Winform窗体到DockPanel z
  13. Linux动态库的编译与使用
  14. 在winform程序中实现按照不同的角色或用户展现不同的页面
  15. 九章算法系列(#4 Dynamic Programming)-课堂笔记
  16. Treasure Exploration(二分最大匹配+floyd)
  17. 3.3.3 PCI设备对可Cache的存储器空间进行DMA读写
  18. Beta Scrum
  19. @RequestParam @PathVariable
  20. Linux(centos)下安装JDK

热门文章

  1. C#文件重命名的代码
  2. Jmeter学习(三)
  3. deepin linux 安装/启动jeakins报错:处理
  4. Appium如何获取appPackage和appActivity
  5. json与python解析
  6. cocos2d-x 中菜单类
  7. python 基础篇 09 函数初识
  8. C++类数组批量赋值
  9. Linux pthread 线程池实现
  10. centos7 centos6中 更改默认的系统启动级别