博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU-Pattern and Text 枚举
阅读量:5796 次
发布时间:2019-06-18

本文共 777 字,大约阅读时间需要 2 分钟。

这题不要去考虑每一个时刻的情况,而要考虑每一个位在所有时间上的叠加效果。

对于长度为Lf的母串和长度为Ls的子串来说,每个字符匹配的长度都是Lf-Ls+1位。

代码如下:

#include 
#include
#include
using namespace std;char f[2000005], s[2000005];int lens, lenf, cnt[30];int main(){ int T, LIM; long long int ans; scanf("%d", &T); while (T--) { ans = 0; memset(cnt, 0, sizeof (cnt)); scanf("%s %s", s, f); lenf = strlen(f); lens = strlen(s); LIM = lenf - lens + 1; for (int i = 0; i < LIM; ++i) { ++cnt[f[i]-'a']; } ans += cnt[s[0]-'a']; for (int i = LIM; i < lenf; ++i) { --cnt[f[i-LIM]-'a']; ++cnt[f[i]-'a']; ans += cnt[s[i-LIM+1]-'a']; } printf("%I64d\n", ans); } return 0;}

转载地址:http://pfifx.baihongyu.com/

你可能感兴趣的文章
POJ1033
查看>>
argparse - 命令行选项与参数解析(转)
查看>>
一维数组
查看>>
Linux学习笔记之三
查看>>
2463: [中山市选2009]谁能赢呢?
查看>>
3631: [JLOI2014]松鼠的新家
查看>>
微信公众号
查看>>
Android_内部文件读取
查看>>
QTP的那些事---webtable的一些重要使用集合精解
查看>>
POJ1061 青蛙的约会(扩展欧几里得)题解
查看>>
[JavaWeb]关于DBUtils中QueryRunner的一些解读(转)
查看>>
C/C++之循环结构
查看>>
Django 2.1.3 文档
查看>>
hdu2147
查看>>
Linux使用bitnami安装redmine
查看>>
Maven 项目生成或者update jdk变为1.5的问题
查看>>
【SICP练习】86 练习2.58
查看>>
python学习笔记一
查看>>
格式化输入函数scanf()及输入输出函数的*修饰符
查看>>
Chapter 8. 面向对象(封装)
查看>>