(紀中)1967. 【普及模擬】數列【數學】

*(File IO): input:sequence.in output:sequence.out
時間限制: 1001 ms 空間限制: 128001 KB 具體限制


題目描述
給定一個長度爲N的數列,求一段連續的子數列滿足該子數列中的各元素的平均數大於AA,輸出可行方案的總數。


輸入
第一行兩個整數N,AN,A
接下來NN個整數,代表數列的NN個元素。

輸出
一個整數,即可行的方案數。


樣例輸入
5 1
1 2 3 4 5

樣例輸出
14


數據範圍限制
對於6060%的數據 N<=1000N <= 1000
對於100100%的數據N<=100000N <= 100000
所有數據包括都在longintlongint範圍內。


解題思路
介於我太菜了,知道正解卻不會打樹狀數組。。。
所以只敲了個6060分代碼。。。。(我枯了/(ㄒoㄒ)/~~)
先前綴和一下。。
然後兩重循環。。。枚舉起點和終點。。


代碼
6060我太菜了

#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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章