先简单介绍下尺取法

http://blog.chinaunix.net/uid-24922718-id-4848418.html

尺取法就是在卡给定条件的时候 不断的改变下标 起点 终点

#include<cstdio>
#include<iostream>
#include<string.h>
using namespace std;
int
main()
{

int
t,k,j,vis[];
char
a[];
cin>>t;
while
(t--)
{

scanf("%s",&a);
scanf("%d",&k);
int
l=,temp,num=,i=;
long long int
ans=;
memset(vis,,sizeof(vis));
int
len=strlen(a);
while
(l<=i&&l<len)
{

while
(i<len&&num<k)
{

temp=a[i++]-'a';
if
(vis[temp]==) num++;
vis[temp]++;
}

if
(num<k) break;
ans+=(len-i+);
temp=a[l]-'a';
vis[temp]--;
if
(vis[temp]==) num--;
l++;
}

printf("%I64d\n",ans);
}

return
;
}

 

最后就这道题目来说说吧 两个点吧

1.这里的要求是不同的字母数 可以用标记数组实现(注意在挪起点的时候 要对标记数组进行处理)

2.题目要求的是所有subquence的个数那么 在爬出最简单的时候 后面的一些就是需要增加的

hdu 5672 尺取还是挺好用的的更多相关文章

  1. HDU 5289 尺取

    Assignment Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total ...

  2. HDU 6205 尺取

    容易看出来,扩增一倍,找最长的区间就行了 /** @Date : 2017-09-11 12:43:11 * @FileName: 1012.cpp * @Platform: Windows * @A ...

  3. HDU 5672 String 【尺取】

    <题目链接> 题目大意:给定一个只由26个小写字母组成的字符串,现在问你至少包含k个不同字母的连续子序列总数有多少. 解题分析:经仔细研究,我们发现,每次尺取到符合要求的最小区间,然后将区 ...

  4. 【尺取】HDU String

    http://acm.hdu.edu.cn/showproblem.php?pid=5672 [题意] 给定一个小写英语字母组成的字符串,求这个字符串一共包含多少个至少有m个不同字母的连续子序列 [思 ...

  5. 【单调队列+尺取】HDU 3530 Subsequence

    acm.hdu.edu.cn/showproblem.php?pid=3530 [题意] 给定一个长度为n的序列,问这个序列满足最大值和最小值的差在[m,k]的范围内的最长子区间是多长? [思路] 对 ...

  6. 【尺取】HDU Problem Killer

    acm.hdu.edu.cn/showproblem.php?pid=5328 [题意] 给定一个长度为n的正整数序列,选出一个连续子序列,这个子序列是等差数列或者等比数列,问这样的连续子序列最长是多 ...

  7. hdu 4123 Bob’s Race 树的直径+rmq+尺取

    Bob’s Race Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Probl ...

  8. hdu 6231 -- K-th Number(二分+尺取)

    题目链接 Problem Description Alice are given an array A[1..N] with N numbers. Now Alice want to build an ...

  9. HDU 5178 pairs【二分】||【尺取】

    <题目链接> 题目大意: 给定一个整数序列,求出绝对值小于等于k的有序对个数. 解题分析: $O(nlong(n))$的二分很好写,这里就不解释了.本题尺取$O(n)$也能做,并且效率很不 ...

随机推荐

  1. c3p0数据库连接池 原创: Java之行 Java之行 5月8日 一、连接池概述 实际开发中“获得连接”或“释放资源”是非常消耗系统资源的两个过程

    c3p0数据库连接池 原创: Java之行 Java之行 5月8日 一.连接池概述 实际开发中“获得连接”或“释放资源”是非常消耗系统资源的两个过程 DB连接池HikariCP为什么如此快 原创: D ...

  2. Thrift: Scalable Cross-Language Services Implementation

    http://thrift.apache.org/static/files/thrift-20070401.pdf

  3. node express返回json数据给前端

    请注意,使用res.json()的格式 1.前面不能添加  res.writeHead(200, {'content-type': 'text/plain;charset=utf-8'}); axio ...

  4. Android插件化(4):OpenAtlasの插件的卸载与更新

    Android插件化(4):OpenAtlasの插件的卸载与更新   转 https://www.300168.com/yidong/show-2779.html 核心提示:如果看过我的前两篇博客An ...

  5. ISO/IEC 9899:2011 条款5——5.2.1 字符集

    5.2.1 字符集 1.两个字符集和它们相关联的依次顺序应该被定义:写在源文件中的集合(源字符集),以及在执行环境中被解释的集合(执行字符集).每个集合此外被划分为一个基本字符集,其内容由本子条款给出 ...

  6. python使用redis实现协同控制的分布式锁

    python使用redis实现协同控制的分布式锁 上午的时候,有个腾讯的朋友问我,关于用zookeeper分布式锁的设计,他的需求其实很简单,就是节点之间的协同合作. 我以前用redis写过一个网络锁 ...

  7. Qt 获取键盘输入

    void vc_widget::keyPressEvent(QKeyEvent *ev) { if (ev->key() == Qt::Key_Up) { qDebug() << & ...

  8. 阶段5 3.微服务项目【学成在线】_day17 用户认证 Zuul_17-身份校验-身份校验过虑器编写

    5 身份校验 5.1 需求分析 本小节实现网关连接Redis校验令牌: 1.从cookie查询用户身份令牌是否存在,不存在则拒绝访问 2.从http header查询jwt令牌是否存在,不存在则拒绝访 ...

  9. std::function以及std::bind

    转自:https://blog.csdn.net/shuilan0066/article/details/82788954 示例1 : 普通函数 void gFunc() { cout << ...

  10. LeetCode_112. Path Sum

    112. Path Sum Easy Given a binary tree and a sum, determine if the tree has a root-to-leaf path such ...