当前位置:   article > 正文

牛客——中位数图(连续子数组和二维前缀和)

牛客——中位数图(连续子数组和二维前缀和)

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
 

题目描述

给出1~n的一个排列,统计该排列有多少个长度为奇数的连续子序列的中位数是b。中位数是指把所有元素从小到大排列后,位于中间的数。

输入描述:

第一行为两个正整数n和b ,第二行为1~n 的排列。

输出描述:

输出一个整数,即中位数为b的连续子序列个数。

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int a[100005],b[100005];
  4. int main()
  5. {
  6. int n,c;cin>>n>>c;
  7. int po,sum=0;
  8. for(int i=1;i<=n;i++){
  9. cin>>a[i];
  10. if(a[i]==c) po=i;
  11. if(a[i]<c) b[i]++;
  12. if(a[i]>c) b[i]--;
  13. b[i]+=b[i-1];
  14. }
  15. // for(int i=1;i<=n;i++) b[i]+=b[i-1];
  16. for(int i=po;i<=n;i++){
  17. for(int j=0;j<po;j++){
  18. if(b[i]-b[j]==0) sum++;
  19. }
  20. }
  21. cout<<sum;
  22. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/blog/article/detail/57234
推荐阅读
相关标签
  

闽ICP备14008679号