先简单介绍下尺取法

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. arcgis python 发送邮件

    import arcgisscripting, smtplib, os, sys, traceback from email.MIMEMultipart import MIMEMultipart fr ...

  2. Mat转CImage

    uchar *pImg=(uchar *)CI.GetBits();//得到CImage数据区地址 ps=img.ptr<uchar>(i); void MatToCImage( Mat ...

  3. Linux给力的Shell命令

    查看目录下面的所有目录 ls /dev/ -F |grep "/"   bus/    disk/    input/  说明: ls -F命令将文件和目录后面添加一个特定的符号; ...

  4. jmeter 和 postman 提交 传输类型为 "multipart/form-data" 的传送写法

    Charles抓包: 请求参数Chrome抓包: jmeter写法: postman写法: 脚本的写法见 https://www.cnblogs.com/kaibindirver/p/9870900. ...

  5. Tips for Conda

    管理环境 创建环境 基于 python3.6 创建一个名为test_py3的环境 conda create -n test_py3 python=3.6 基于 python2.7 创建一个名为test ...

  6. 获取src 内容

    获取(代码): ].src; // 测试无效 修改(代码): 1 $("#img").attr('src',path);

  7. LODOP获取打印状态码和时间列表

    之前有博文介绍获取打印状态码和打印状态码的含义,相关博文:LODOP获取打印机状态码和状态码含义测试.此外 ,也有获取状态码及其变化的方法,可以获取打印状态码的列表,列表包含每个状态和每个状态的时间. ...

  8. linux下无法启动webdriver问题

    linux下无法启动webdriver问题: 查看是否有足够多的webdriver进程: ps -ef | grep chromedriver kill -9 `ps -ef |grepchromed ...

  9. Redcon:快速的Redis服务器Go实现

    Fast Redis compatible server framework for Go Redcon is a custom Redis server framework for Go that ...

  10. GPU Skinning 结合 Instanced 高效实现大量单位动画

    GPU Skinning 与 Instance 蒙皮动画 计算骨骼信息 蒙皮 GPU Skinning CPU Skinning 与 GPU Skinning 实现方式 Skinning 类型 优点 ...