题意:

给定一个序列,问在这个序列里有多少区间第k的的数>=m

思路:

在比赛的时候是多想了,开始像区间第k大的问题,赛后想想实在是偏了。

正确的解法是枚举起点然后用尺取法维护一段区间,直到找到k个数>=m的最短终点r,ans便是后边这一小段即n-r+1。

code:

#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <cstring>
#include <sstream>
#include <string>
#include <vector>
#include <list>
#include <queue>
#include <stack>
#include <map>
#include <set>
#include <bitset>using namespace std;typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;const int INF=0x3fffffff;
const int inf=-INF;
const int N=200005;
const int M=2005;
const int mod=1000000007;
const double pi=acos(-1.0);#define cls(x,c) memset(x,c,sizeof(x))
#define cpy(x,a) memcpy(x,a,sizeof(a))
#define ft(i,s,n) for (int i=s;i<=n;i++)
#define frt(i,s,n) for (int i=s;i>=n;i--)
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define lrt  rt<<1
#define rrt  rt<<1|1
#define middle int m=(r+l)>>1
#define lowbit(x) (x&-x)
#define pii pair<int,int>
#define mk make_pair
#define IN freopen("in.txt","r",stdin)
#define OUT freopen("out.txt","w",stdout)int read() {char ch;while (ch = getchar(), !isdigit(ch));int res = ch - '0';while (ch = getchar(), isdigit(ch))res = res * 10 + ch - '0';return res;
}
//++++++++++++密++++++++++++++封++++++++++++++++++++线
int a[N];
int main()
{int T=read();while (T--){int n=read(),m=read(),k=read();for (int i=1;i<=n;i++) a[i]=read();int num=0,r=0;ll ans=0; //num表示大于m的个数,r为最短终点for (int i=1;i<=n;i++){while (num<k&&r<n){r++;num+=(a[r]>=m);}if (num<k) break;ans+=n-r+1;num-=(a[i]>=m);}printf("%I64d\n",ans);}
}

BestCoder Round #86 1003 HDU 5806——NanoApe Loves Sequence Ⅱ相关推荐

  1. BestCoder Round #86 1002 HDU 5805 ——NanoApe Loves Sequence

    题意 给定一个数列,随机从该数列里删除一个数,求该数列的的相邻之间的绝对值的最大值的和. 思路 两个数列来分别维护i位前面的相邻的绝对值的最大以及i后面的最大,枚举每一个可能删除的数,然后分别从左右和 ...

  2. HDU 5804 BestCoder Round #86 Price List (水题)

    Price List 题目链接: 点我打开链接 Source BestCoder Round #86  题意:有一个人去 n 间商店购物,在每家商店购买最多一件物品,也可以什么都不买.给你每家商店的物 ...

  3. BestCoder Round #86 HDU 5804,HDU 5805,HDU 5806,HDU 5807

    第一题: HDU 5804 链接 0 - 商品总和之间的任意价格都可以取到 每次判断记录是否大于总和即可 代码: #include <cstdio> #include <iostre ...

  4. BestCoder Round #78 (div.2)_B_ CA Loves GCD

    CA Loves GCD Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) T ...

  5. hdu 5273 Dylans loves sequence 逆序数简单递推

    Dylans loves sequence Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem ...

  6. BestCoder Round #29 1003 (hdu 5172) GTY's gay friends [线段树 判不同 预处理 好题]

    传送门 GTY's gay friends Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Ot ...

  7. hdu5804(BestCoder Round #86 A)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5804 解题思路:水题,计算给出的数值的和,然后在每次查询的时候比较数字与之前求出的和的大小,若大于,则 ...

  8. BestCoder Round #87 1003 LCIS[序列DP]

    LCIS  Accepts: 109  Submissions: 775  Time Limit: 4000/2000 MS (Java/Others)  Memory Limit: 65536/65 ...

  9. Codeforces Round #FF (Div. 2)C.DYZ Loves Sequence

    一道类似求严格递增子序列的题目.这道题可以改变一个数成任意数,使得严格递增子序列增加. *思路:两个标记数组from[i],to[i];from[i]的含义是从i出发的最长的严格递增序列长度,to[i ...

最新文章

  1. Python 中的高级斗技,让函数返回结果的技巧
  2. 【项目管理】采购管理
  3. AR-关于应收票据的系统操作说明
  4. 初学 Unsupervised feature learning and deep learning--Sparse autoencoder
  5. 计算机网络——物理层基本概念
  6. 入侵检测技术-矛与盾
  7. tensorflow之saver
  8. append追加的html中富文本失效,jquery append 动态添加的元素事件on 不起作用的解决方案...
  9. PHP教程,PHP入门教程大全(2021整理)
  10. The7 — 响应式多用途 WordPress 主题 免费下载
  11. 【OI好题推荐 #1】洛谷-P1183 多边形的面积
  12. 网站空间与服务器的区别,网站空间与服务器的区别
  13. 凯撒密码解密加密(C语言)
  14. c语言编译器字体怎么变大,c语言中怎么将个别字体放大,如9,将其放大,怎么编程呢?...
  15. 高德地图上画图!和3D绘制区域
  16. 【NOIP模拟】我的天
  17. Graphviz解决图论简单画图
  18. java kpi_JAVA内存调优的KPI
  19. 牛客小白月赛6 I.公交线路
  20. 详解springcloud微服务技术栈(一)

热门文章

  1. CSS染色图标(图片)
  2. 【开发调试】谷歌浏览器中调试移动网页和测试网速下页面效果
  3. js笔记(四)内置对象Math和Date()、浏览器对象模型BOM
  4. 批处理:修改COM端口号
  5. JQuery .net WebService 参数必须一致
  6. 2018秋季C语言学习总结
  7. Dashboard集群
  8. 如何在 IIS 中设置 HTTPS 服务
  9. vs 2012,vs 2013问题系列
  10. 在需要时开启Perl新特性