*(File IO): input:sequence.in output:sequence.out
時間限制: 1001 ms 空間限制: 128001 KB 具體限制
題目描述
給定一個長度爲N的數列,求一段連續的子數列滿足該子數列中的各元素的平均數大於,輸出可行方案的總數。
輸入
第一行兩個整數
接下來個整數,代表數列的個元素。
輸出
一個整數,即可行的方案數。
樣例輸入
5 1
1 2 3 4 5
樣例輸出
14
數據範圍限制
對於%的數據
對於%的數據
所有數據包括都在範圍內。
解題思路
介於我太菜了,知道正解卻不會打樹狀數組。。。
所以只敲了個分代碼。。。。(我枯了/(ㄒoㄒ)/~~)
先前綴和一下。。
然後兩重循環。。。枚舉起點和終點。。
代碼
分 我太菜了
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<iomanip>
#include<cmath>
using namespace std;
int n,a,ans;
int b[100010];
int main(){
freopen("sequence.in","r",stdin);
freopen("sequence.out","w",stdout);
scanf("%d%d",&n,&a);
for(int i=1;i<=n;i++)
{
scanf("%d",&b[i]);
b[i]=b[i]+b[i-1];
}
for(int i=1;i<=n;i++)
{
for(int j=i;j<=n;j++)
if((b[j]-b[i-1])*1.0/(j-i+1)>a)
++ans;
}
cout<<ans;
}