3097: Hash Killer I

Time Limit: 5 Sec  Memory Limit: 128 MBSec  Special Judge
[Submit][Status][Discuss]

Description

这天天气不错,hzhwcmhf神犇给VFleaKing出了一道题:
给你一个长度为N的字符串S,求有多少个不同的长度为L的子串。
子串的定义是S[l]、S[l + 1]、... S[r]这样连续的一段。
两个字符串被认为是不同的当且仅当某个位置上的字符不同。

VFleaKing一看觉得这不是Hash的裸题么!于是果断写了哈希 + 排序。
而hzhwcmhf神犇心里自然知道,这题就是后缀数组的height中 < L的个数 + 1,就是后缀自动机上代表的长度区间包含L的结点个数,就是后缀树深度为L的结点的数量。
但是hzhwcmhf神犇看了看VFleaKing的做法表示非常汗。于是想卡掉他。

VFleaKing使用的是字典序哈希,其代码大致如下:
u64 val = 0;
for (int i = 0; i < l; i++)
 val = val * base + s[i] - 'a';
u64是无符号int64,范围是[0, 2^64)。VFleaKing让val自然溢出。
base是一个常量,VFleaKing会根据心情决定其值。
VFleaKing还求出来了base ^ l,即base的l次方,这样就能方便地求出所有长度为L的子串的哈希值。
然后VFleaKing给哈希值排序,去重,求出有多少个不同的哈希值,把这个数作为结果。
其算法的C++代码如下:

typedef unsigned long long u64;

const int MaxN = 100000;

inline int hash_handle(const char *s, const int &n, const int &l, const int &base)
{
 u64 hash_pow_l = 1;
 for (int i = 1; i <= l; i++)
  hash_pow_l *= base;

int li_n = 0;
 static u64 li[MaxN];

u64 val = 0;
 for (int i = 0; i < l; i++)
  val = val * base + s[i] - 'a';
 li[li_n++] = val;
 for (int i = l; i < n; i++)
 {
  val = val * base + s[i] - 'a';
  val -= (s[i - l] - 'a') * hash_pow_l;
  li[li_n++] = val;
 }

sort(li, li + li_n);
 li_n = unique(li, li + li_n) - li;
 return li_n;
}

hzhwcmhf当然知道怎么卡啦!但是他想考考你。

Input

没有输入。

Output

你需要输出一组数据使得VFleaKing的代码WA掉。我们会使用Special Judge检查你的结果的正确性。
输出文件共两行。
第一行两个用空格隔开的数n、l。
第二行是一个长度为n的字符串。只能包含'a'~'z'。
需要保证1 <= n <= 10^5, 1 <= l <= n,
不符合以上格式会WA。
不要有多余字符,很可能导致你WA。

Sample Input

没有

Sample Output

8 4
buaabuaa
(当然这个输出是会WA的)

HINT

orz 波兰人 & fotile96 & sillycross

Source

VFleaKing & hzhwcmhf

题目链接

转载于:https://www.cnblogs.com/m-m-m/p/8934125.html

BZOJ 3097: Hash Killer I相关推荐

  1. 字符串——BZOJ 3097: Hash Killer I【构造题,思维题】

    BZOJ 3097: Hash Killer I[构造题,思维题] 题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3097 题意:让你出一组 ...

  2. BZOJ 3098: Hash Killer II(新生必做的水题)

    3098: Hash Killer II Time Limit: 5 Sec  Memory Limit: 128 MBSec  Special Judge Submit: 1555  Solved: ...

  3. BZOJ 3098(Hash Killer II-生日攻击)

    3098: Hash Killer II Time Limit: 5 Sec   Memory Limit: 128 MBSec   Special Judge Submit: 66   Solved ...

  4. 【BZOJ 3098】 Hash Killer II

    Description 这天天气不错,hzhwcmhf神犇给VFleaKing出了一道题: 给你一个长度为N的字符串S,求有多少个不同的长度为L的子串. 子串的定义是S[l].S[l + 1].... ...

  5. BZOJ3098. Hash Killer II(生日攻击)

    Description 这天天气不错,hzhwcmhf神犇给VFleaKing出了一道题: 给你一个长度为N的字符串S,求有多少个不同的长度为L的子串. 子串的定义是S[l].S[l + 1].- S ...

  6. hash进阶:使用字符串hash乱搞的姿势

    前言 此文主要介绍hash的各种乱搞方法,hash入门请参照我之前这篇文章 不好意思hash真的可以为所欲为 在开头先放一下题表(其实就是我题解中的hash题目qwq) 查询子串hash值 必备的入门 ...

  7. 2019.4.summary

    2019.4.1 BZOJ1061: [Noi2008]志愿者招募 真心有点难QAQ https://www.byvoid.com/zhs/blog/noi-2008-employee 看void爷的 ...

  8. 中高级数论 [欧拉函数线性筛,二次剩余]

    欧拉函数线性筛 对于素数ppp, φ(p∗i)={p−1i=1p∗φ(i)p∣i(p−1)∗φ(i)p∤i\varphi (p*i)= \begin{cases} p-1& i=1\\ p*\ ...

  9. [BZOJ 3207] 花神的嘲讽计划Ⅰ【Hash + 可持久化线段树】

    题目链接:BZOJ - 3207 题目分析 先使用Hash,把每个长度为 k 的序列转为一个整数,然后题目就转化为了询问某个区间内有没有整数 x . 这一步可以使用可持久化线段树来做,虽然感觉可以有更 ...

  10. BZOJ.4598.[SDOI2016]模式字符串(点分治 Hash)

    LOJ BZOJ 洛谷 点分治.考虑如何计算过\(rt\)的答案. 记\(pre[i]\)表示(之前的)子树内循环匹配了\(S\)的前缀\(i\)的路径有多少,\(suf[i]\)表示(之前的)子树内 ...

最新文章

  1. 这篇文章带你彻底理解红黑树
  2. 深度学习算法_爱奇艺深度学习算法实习生面经
  3. 碘类滴眼液相关资料(国内+国外)
  4. Android 动态绘制曲线等各种图形
  5. 指针(pointers)和引用(references)区别
  6. 读取txt文件赋值到DataGridView中
  7. c语言调用机器码,演示几种用C语言来执行shellcode(其实也就是机器码)的方式
  8. jquery 设置select的默认值
  9. Python机器学习:多项式回归与模型泛化003过拟合与欠拟合
  10. vs 调用matlab引擎,vs2010 matlab混合编程调用matlab引擎
  11. 网络抓取功能实现 将获取的结果进行过滤并写入到TXT文档中
  12. vscode:解决按英文感叹号!+tab,无法生成html模板框架的问题
  13. vue 页脚_如何将页脚固定在页面底部_sticky footer, Layout, templates, 会员专栏 教程_w3cplus...
  14. 惊叹!前NASA员工绘大型精美地面立体画(高清组图)
  15. Windows系统无NVIDIA卡安装APEX
  16. python线程间通信
  17. 机器学习数学基础知识
  18. 取原始数组中的指定数据push新数组
  19. 基于Predictive Parsing的ABNF语法分析器(十二)——alternation、concatenation、group和option
  20. 64匹马,8个赛道,找出跑得最快的4匹马

热门文章

  1. [转]IE Javascript 脚本失效解决办法
  2. AUTOSAR E2E SecOC Comparison
  3. orangepizero编译ch934x驱动
  4. VIJOS-P1625 精卫填海(背包)
  5. 「技术选型」Solr与ES难以抉择?且看第一回
  6. 求学信计算机专业英语,求学信英文版范文
  7. hdu 3987 Harry Potter and the Forbidden Forest
  8. 行业专家对2021年的云计算发展趋势的预测
  9. 苹果电脑ping 不通本地网络
  10. 由三点画圆到未来日记:失控中的位置隐私