【BZOJ 3098】 Hash Killer II

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') % Mod;
u64是无符号int64,范围是[0, 2^64)。
base是一个常量,VFleaKing会根据心情决定其值。
Mod等于1000000007。
VFleaKing还求出来了base ^ l % Mod,即base的l次方除以Mod的余数,这样就能方便地求出所有长度为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)
{
 const int Mod = 1000000007;

 u64 hash_pow_l = 1;
 for (int i = 1; i <= l; i++)
  hash_pow_l = (hash_pow_l * base) % Mod;

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

 u64 val = 0;
 for (int i = 0; i < l; i++)
  val = (val * base + s[i] - 'a') % Mod;
 li[li_n++] = val;
 for (int i = l; i < n; i++)
 {
  val = (val * base + s[i] - 'a') % Mod;
  val = (val + Mod - ((s[i - l] - 'a') * hash_pow_l) % Mod) % Mod;
  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

 

如果一个房间里有23个或23个以上的人,那么至少有两个人的生日相同的概率要大于50%。

生日悖论
这里取模的数是10^9+7,所以只需要生成sqrt(10^9+7)≈100000的数就会出现冲突
1 #include<cstdio>
2 #include<cstdlib>
3 int main(){
4     printf("100000 20\n");
5     for(int i=1;i<=100000;i++) printf("%c",(rand()%26+'a'));
6     printf("\n");
7 } 

 

转载于:https://www.cnblogs.com/wuminyan/p/5211715.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/261943.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在Windows Azure VM上的SQL Server和Windows Azure SQL Database两者中做出选择

作者信息&#xff1a;本篇文章是由SQL Server Cloud Infrastructure Team的 Madhan Arumugam 和 Guy Bowerman共同著作。 简介 把SQL 数据托管在哪里&#xff0c;Windows Azure 为您提供了两个选择&#xff0c;VM上的SQL Server&#xff08;以下简称 SQL/VM&#xff09;和 Wind…

MFC 控件布局

在MFC要自己控制控件随窗口变化而改变其大小 以下提供一个解决办法&#xff0c;easysize.h来自codeproject /Files/pbreak/EasySize.rar 第一:添加消息映射 afx_msg void OnSize(UINT nType, int cx, int cy); afx_msg void OnSizing(UINT fwSide, LPRECT pRect); ON_WM_SIZE()…

c语言离散卷积编程,实验一 离散卷积的C语言编程.ppt

实验一 离散卷积的C语言编程.ppt实验一 离散卷积的C语言编程实验 DSP实验室 实验性质 综合设计性实验 实验目的 1 了解和认识常用的各种信号&#xff1b; 2 掌握卷积的定义和计算方法&#xff1b; 3 掌握在计算机中生成以及绘制信号序列图的方法。 实验原理 离散时间系统中几种…

graphviz 画决策树_数据挖掘入门系列教程(四)之基于scikit-lean决策树处理Iris

数据挖掘入门系列教程&#xff08;四&#xff09;之基于scikit-lean决策树处理Iris加载数据集数据特征训练随机森林调参工程师结尾数据挖掘入门系列教程&#xff08;四&#xff09;之基于scikit-lean决策树处理Iris在上一篇博客&#xff0c;我们介绍了决策树的一些知识。如果对…

设计模式UML图

1.简单工厂模式 2.工厂模式 工厂模式与简单工厂模式的不同在于&#xff0c;每个操作类都有自己的工厂&#xff0c;而且把逻辑判断交给了客户端&#xff0c;而简单工厂的逻辑判断在工厂类里边&#xff0c;当增加新的操作类时&#xff0c;简单工厂需要修改工厂类&#xff0c;而工…

Android小項目之--ListView與ListAcitivity完善論壇管理效果2(附源碼)

ListAcitivity 类型布局用来配置应用程序&#xff0c;主要为显示菜单列表、列表明细项目&#xff0c;假如让程序继承 ListActivity ,可以实现以下的方法&#xff1a; getListAdapter()  取得目前列表项目的 AdaptergetListView()  取得目前列表的 ViewgetSelectedItemId() …

c语言编辑输出后汉字乱码,为什么这个程序会输出汉字乱码

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼#include #include #include #include #include int main(void){int correct false;char anothergame *Y*;int counter 0;int sequencelength 0;time_t seed 0;int number 0;time_t now 0;int time_taken0;int i1;printf(&qu…

Ctrl+F5不能使用的问题

axure中F5生成整个原型&#xff0c;CtrlF5是生成当前的单个页面。 如果碰到CtrlF5不能生成的情况&#xff0c;则表明当前的页面处在母版页&#xff0c;动态面板的状态页&#xff0c;或者在生成页面中&#xff0c;没有勾选生成所有页面转载于:https://www.cnblogs.com/zlhayden/…

docker 覆盖 entrypoint_最佳实践,Dockerfile中ENTRYPOINT与CMD指令的区别与建议

通过本文你会获得什么熟悉Dockerfile中ENTRYPOINT和CMD指令之间的区别&#xff0c;以及在实际项目中的使用建议。1 - 开始前准备首先你要有个docker环境&#xff0c;以下实验基于&#xff1a;docker 18.09&#xff0c;以及alpine:3.8镜像。下载基础镜像docker pull alpine:3.82…

《修改winXP pro安装界面》 、《修改winXP pro开机画面》、《修改winXP pro登录画面》...

一、《修改winXP pro安装界面》 ---------------------------- 安装界面----也就是安装复制完系统文件&#xff0c;重启进入的安装界面&#xff0c;这个界面停留的时间较长&#xff0c;值得一改以 供欣赏&#xff0c;复制完winXP pro的安装文件到硬盘上后&#xff0c;点击“i38…

单实例单向rac搭建gg流

1、 m1 m2 m3 source端 2、 在m1 m2 m3 上 /etc/hosts 172.16.10.140 source source上 添加 #public network 172.16.15.101 m1 172.16.15.102 m2 172.16.15.103 m3 #private network 10.11.11.1 m1-pri 10.11.11.2 m2-pri 10.11.11.3 m3-pri 29 #VIP network 172.16.15.1…

int0低电平触发c语言,单片机中断的解释.ppt

单片机中断的解释在CPU和外设交换信息时&#xff0c;存在着快速CPU和慢速外设间的矛盾&#xff0c;机器内部有时也可能出现突发事件&#xff0c;为此&#xff0c;计算机中通常采用中断技术。 中断 CPU和外设并行工作&#xff0c;当外设数据准备好( 或有某种突发事件发生)时向CP…

python自动登录教程_Python 实现自动登录+点击+滑动验证功能

需要用到的库有selenium&#xff0c;还需要安装Chrome浏览器驱动&#xff0c;具体如何安装我就不详述了 在这里我模拟了csdn的登录过程 ** 1**.首先打开网页&#xff0c;用户名密码登录&#xff0c;然后定位用户名输入框&#xff0c;和密码输入框&#xff0c;输入后 点击登陆 弹…

js 字符ascii码转换函数

字符转ascii码&#xff1a;用charCodeAt();ascii码砖字符&#xff1a;用fromCharCode(); 看一个小例子<script>str"A";code str.charCodeAt(); str2 String.fromCharCode(code);str3 String.fromCharCode(0x6026);document.write(code<br />);documen…

【生活智慧】005.信守诺言的约束

《塔木德》指出&#xff0c;信守诺言的约束&#xff0c;重视集体的力量&#xff0c;永远怀着必胜的信念的等&#xff0c;都有助于一个人获得成功。 下面的故事生动地诠释了这些使很多犹太人受益一生的原则。 丛林中走出了四个男人&#xff0c;他们蓬头垢面&#xff0c;衣衫褴褛…

python c 语言接口,## 人生苦短我用python[0x08] 使用ctypes调用c语言接口 ##

文章内容为原创&#xff0c;欢迎转载请注明出处作者&#xff1a; EflyPro->晦明禅师1.背景python作为解析语言大规模应用在各个领域&#xff0c;c语言作为系统级别的语言广泛应用在基础&#xff0c;系统&#xff0c;网络等底层服务当中&#xff0c;可以说python和c语言之间各…

2月份.xyz域名总量10强:西数称王 注册量破百万

IDC评述网&#xff08;idcps.com&#xff09;02月25日报道&#xff1a;根据ntldstats.com发布的最新数据显示&#xff0c;截止至2016年2月24日17时&#xff0c;国内外.xyz域名总量十强名单顺序&#xff0c;与上期1月28日对比&#xff0c;无任何变化。最值得一提的是&#xff0c…

flash作业_一起作业,你很智障!

电子作业现在貌似很流行&#xff0c;在很多学校都有&#xff0c;具体的利弊就不再赘述&#xff0c;可以点击前面的超链接跳转到某度百科自己看。今天只是忍不住怕盘点下国内知名电子作业平台——一起作业网的一些智障设计。。。本来想写到这里去的&#xff1a;有哪些让人拍案叫…

XML 测验

您的回答&#xff1a; 1.XML指的是&#xff1f; 您的回答&#xff1a;eXtensible Markup Language 2.XML对数据进行描述的方式是&#xff1f; 您的回答&#xff1a;XML使用描述节点类描述数据 正确答案&#xff1a;XML使用DTD来描述数据 3.XML的目标是取代HTML 您的回答&#x…

【unity3d游戏开发之基础篇】利用射线实现鼠标控制角色转向和移动(角色移动一)...

由于最近搞2D游戏&#xff0c; 下面的代码配合NGUI来使用 。。。 将代码拖到角色身上就OK&#xff0c; 实现了角色转向、移动 &#xff0c;想看效果的可以将代码下下来~ 用到了向量来计算角度 以及方向&#xff0c; 得恶补下向量知识了 。。。 代码参考&#xff1a; 1 using…