zoukankan      html  css  js  c++  java
  • bzoj1303

    题解:

    首先把>b的标记为1

    小于b的标记为-1

    然后更具乘法原理做

    代码:

    #include<bits/stdc++.h>
    using namespace std;
    const int N=200005;
    int num[N],sum[N],l[N],r[N],n,b,point,ans;
    int main()
    {
        scanf("%d%d",&n,&b);
        for (int i=1;i<=n;i++)
         {
            scanf("%d",&num[i]);
            if (num[i]>b)num[i]=1;
            else if (num[i]==b){num[i]=0;point=i;}
            else num[i]=-1;
         }
        l[n]=1;r[n]=1;
        for (int i=point-1;i>=1;i--){sum[i]=sum[i+1]+num[i];l[sum[i]+n]++;}
        for (int i=point+1;i<=n;i++){sum[i]=sum[i-1]+num[i];r[sum[i]+n]++;}
        for (int i=0;i<=2*n-1;i++)ans+=l[i]*r[2*n-i];
        printf("%d",ans);
        return 0;
    }
  • 相关阅读:
    宿舍助手app——个人工作第四天
    宿舍助手app——个人工作第三天
    对QQ输入法的评价
    冲刺9
    冲刺8
    冲刺7
    冲刺6
    冲刺5
    冲刺4
    冲刺3
  • 原文地址:https://www.cnblogs.com/xuanyiming/p/8596742.html
Copyright © 2011-2022 走看看