到了收获的季节 香蕉园里有n棵香蕉树排成一列 树上分别结了a1a2⋯an个香蕉小珅同学只能收获相邻的连续若干棵香蕉树上的香蕉且必须收获至少K个香蕉 但是小珅同学不满足于此他想知道要收获至少K个香蕉一共有多少种不同的收法只要起点终点不完全相同就认为是不同的收获方法请写程序帮他确定不同的收获方法数吧一定用前缀和数组c++代码
#include
int main() { int n, K; cin >> n >> K;
vector<int> bananas(n);
for (int i = 0; i < n; i++) {
cin >> bananas[i];
}
vector<int> prefixSum(n+1, 0);
for (int i = 1; i <= n; i++) {
prefixSum[i] = prefixSum[i-1] + bananas[i-1];
}
int count = 0;
for (int i = 0; i < n; i++) {
for (int j = i; j < n; j++) {
if (prefixSum[j+1] - prefixSum[i] >= K) {
count++;
}
}
}
cout << count << endl;
return 0;
原文地址: https://www.cveoy.top/t/topic/iaaN 著作权归作者所有。请勿转载和采集!