将大于等于m的数改为1,其余的改为0。问题转变成了有多少个区间的区间和>=k。可以枚举起点,二分第一个终点 或者尺取法。

#pragma comment(linker, "/STACK:1024000000,1024000000")
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<vector>
#include<map>
#include<set>
#include<queue>
#include<stack>
#include<iostream>
using namespace std;
typedef long long LL;
const double pi=acos(-1.0),eps=1e-;
void File()
{
freopen("D:\\in.txt","r",stdin);
freopen("D:\\out.txt","w",stdout);
}
inline int read()
{
char c = getchar(); while(!isdigit(c)) c = getchar();
int x = ;
while(isdigit(c)) { x = x * + c - ''; c = getchar(); }
return x;
} const int maxn=+;
int T,n,m,k,a[maxn],sum[maxn]; int main()
{
scanf("%d",&T);
while(T--)
{
scanf("%d%d%d",&n,&m,&k); sum[]=;
for(int i=;i<=n;i++)
{
scanf("%d",&a[i]);
if(a[i]>=m) a[i]=;
else a[i]=;
sum[i]=sum[i-]+a[i];
}
LL ans=; for(int i=;i<=n;i++)
{
int L=i,R=n,pos=-;
while(L<=R)
{
int mid=(L+R)/;
if(sum[mid]-sum[i-]>=k) pos=mid,R=mid-;
else L=mid+;
}
if(pos==-) continue;
ans=ans+n-pos+;
}
printf("%lld\n",ans);
}
return ;
}

最新文章

  1. 下载时,经常看见ASC、MD5、SHA1等,是干什么的呢?
  2. nodejs中常用加密算法
  3. mysql学习之-三种安装方式与版本介绍
  4. java 几种常见的定时器
  5. 转:Node.js异步处理CPU密集型任务的新思路
  6. UESTC_邱老师看电影 2015 UESTC Training for Dynamic Programming&lt;Problem F&gt;
  7. ios 获得版本号
  8. 读headFirst设计模式 - 装饰者模式
  9. a链接返回上一页
  10. scala学习笔记5 (隐式转化/参数/类)
  11. 在js文件里调用另一个js文件里的函数
  12. ASP.NET发送电子邮件(转)
  13. linux ssh root登陆出现错误:Permission denied, please try again
  14. 使用FFMPEG类库分离出多媒体文件中的H.264码流
  15. SQL SERVER的锁机制(三)——概述(锁与事务隔离级别)
  16. uWSGI listen queue 队列溢出的问题
  17. day11迭代器 and 闭包
  18. bat命令2
  19. 离线安装ocp3.11需要注意的事情
  20. Java并发(7):阻塞队列

热门文章

  1. jQuery 设置select默认选中问题
  2. nginx trouble shooting
  3. 优秀代码要求(转自http://www.cnblogs.com/brishenzhou/p/6284188.html)
  4. 【c++】size_t 和 size_type的区别
  5. Winform制作圆弧panel
  6. 自定义控件之圆形颜色渐变进度条--SweepGradient
  7. Hadoop查看目录文件大小的脚本
  8. R绘图学习笔记(二)-
  9. 计算机网络课程优秀备考PPT之第四章介质访问控制层(四)
  10. 小程序--改变子级别页面导航栏信息 / navigationBarTitleText