BZOJ 1303 [CQOI2009]中位数图
2016-10-01 16:38
302 查看
暴力
对于b而言,b+1和b+2的贡献都是一样的,所以只要考虑数字是比b大或比b小,分别记为+1,-1,b自己记为0。left[i]表示从b那一位开始向左的子串中累加值为i的方案数,right同理,于是乘一下就好了
对于b而言,b+1和b+2的贡献都是一样的,所以只要考虑数字是比b大或比b小,分别记为+1,-1,b自己记为0。left[i]表示从b那一位开始向左的子串中累加值为i的方案数,right同理,于是乘一下就好了
#include<cstdio> #define N 100005 using namespace std; int a , left[2*N], right[2*N], pos; int main() { int n, b; scanf("%d%d",&n,&b); for(int i = 1; i <= n; i++) { scanf("%d",&a[i]); if(a[i]==b)pos=i,a[i]=0; else a[i]=a[i]>b?1:-1; } int sum=0; for(int i = pos; i; i--) left[n+(sum+=a[i])]++; sum=0; for(int i = pos; i <= n; i++) right[n+(sum+=a[i])]++; int ans=0; for(int i = -n; i <= n; i++) ans+=left[i+n]*right[-i+n]; printf("%d\n",ans); }
相关文章推荐
- [BZOJ1303] [CQOI2009]中位数图
- BZOJ1303: [CQOI2009]中位数图
- 【BZOJ】1303 [CQOI2009]中位数图 建模
- [BZOJ 1303] CQOI 2009 中位数图 · 数学
- BZOJ 1303 CQOI 2009 中位数图 模拟
- bzoj 1303: [CQOI2009]中位数图 数学
- [BZOJ1303][CQOI2009]中位数图
- bzoj1303 [CQOI2009]中位数图
- BZOJ 1303: [CQOI2009]中位数图
- BZOJ1303 [CQOI2009]中位数图
- bzoj 1303: [CQOI2009]中位数图
- bzoj1303[CQOI2009]中位数图
- bzoj 1303 [CQOI2009]中位数图
- BZOJ 1303: [CQOI2009]中位数图【前缀和】
- bzoj 1303: [CQOI2009]中位数图
- bzoj千题计划175:bzoj1303: [CQOI2009]中位数图
- bzoj1303: [CQOI2009]中位数图
- 【BZOJ 1303】 [CQOI2009]中位数图
- 子串为中位数的有几个——BZOJ 1303: [CQOI2009]中位数图
- bzoj1303: [CQOI2009]中位数图