题目描述

一个长度为N的数组A, 所有数都是整数 ,0 <= A[i] <= 1000000,1 <= i <= N,1 <= N <= 100000,对于 任意i,j ,1 <=  i  <=  j  <= N,[i, j]中所有数为原数组的一个子区间, 现在要求子区间的和小于等于K的子区间有多少个, 0 <=  K  <= 10000。

虽然xry111很SB,但还是在O(N)的时间复杂度内就做出了这题,你呢?

输入

第一行整数T 代表数据组数,1 <= T  <=  12

每组数据第一行 整数 N, K。

接下来一行N个整数,  由空格隔开。

输出

输出子区间的和小于等于K的子区间的个数。 每组输出占一行。

--正文

明明是简单的题,却做了半天。。。

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std; typedef long long LL;
long long a[];
int n,k,i,j;
int main(){
int time,T; scanf("%d",&T);
for (time=;time<=T;time++){
int now = ;
LL sum = ,res = ;
scanf("%d %d",&n,&k);
for (i=;i<=n;i++){
scanf("%lld",&a[i]);
sum += a[i];
if (sum <= k) {
res += i - now + ;
}
else {
while (sum > k){
sum = sum - a[now]; now ++;
}
res += i - now + ;
}
}
printf("%lld\n",res);
}
return ;
}

最新文章

  1. 《精通C#》委托与事件(10章)
  2. js 正则验证输入框只允许输入正实数和正整数和负整数
  3. Linux 信号详解一(signal函数)
  4. IUS通过PLI产生fsdb波形
  5. MVC 与传统的 webform 的比较
  6. Unity3D 之暂停和继续的实现
  7. Node.js REPL终端
  8. Linux学习——环境变量设置
  9. 手把手教你用Mysql-Cluster-7.5搭建数据库集群
  10. 数据转换d2d.js
  11. CSDN删除上传资源的办法
  12. COGS 144. [USACO Dec07] 魅力手镯【01背包复习】
  13. NewLife.XCode 上手指南2018版(一)代码生成
  14. USB OTG原理+ ID 检测原理
  15. IPv6简介
  16. POCO Log库
  17. CentOS开机卡在进度条,无法正常开机的排查办法
  18. 【转载】TableLayout表格布局详解
  19. GoBelieve UseID及ImID方案
  20. 取数字(dp优化)

热门文章

  1. 如何通过SerialPort读取和写入设备COM端口数据
  2. iis WebSocket 搭建环境及配置
  3. 黄聪:如何为IIS增加svg和woff等字体格式的MIME
  4. 黄聪:远程序桌面登录的.NET(C#)开发
  5. (C++) LNK2019: unresolved external symbol.
  6. SparkConf加载与SparkContext创建(源码阅读一)
  7. Codeforces Round #381 (Div. 2)B. Alyona and flowers(水题)
  8. linux 出core设置问题
  9. 13 年的 Bug 调试经验总结
  10. WinForm中TreeView控件实现鼠标拖动节点(可实现同级节点位置互换,或拖到目标子节点)