
最小表示法
逐梦起航-带梦飞翔
为了更加长远的快乐!
展开
-
最小表示法—介绍
最小表示法使得一个环形字符串有唯一的读法,这个读法是所有读法中字典序最小的。 本文讲解的是最小表示法的O(n)求法。 对于这种环形问题,一个常规的做法是把它自己复制一遍,接到原串之后。问题就转换成了求在字符串s中长度为n的最小子串。 先思考暴力做法。找到所有同构串,两两间比较一下,找到最小的。 优一点的做法,存下一个最小的同构串,逐一比较,如果有更小的则替换之。即便是这样时间复杂度O(n*|S|...原创 2018-08-08 19:41:44 · 1126 阅读 · 2 评论 -
bzoj1398 Necklace(最小表示法)
题意 给出两串数字,判断它们是否是同构串。 题解 最小表示法 裸题~~~ 代码 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int maxl=1000010; char s1[2*maxl],s2[2*maxl];in...原创 2018-08-13 11:22:26 · 320 阅读 · 0 评论 -
poj3349 Snowflake Snow Snowflakes(Hash)
题意 给你n朵雪花,每朵雪花有6片花瓣,每片花瓣有一个权值。花瓣的权值可以从任意位置的顺时针或逆时针来读,判断是否有两朵相同的雪花。 题解1 暴力hash 我们约定,一朵雪花的hash值为,P取质数99991。对于相同的hash,我们将其各边用邻接表记录,对其中进行暴力比对:枚举起点,顺着、逆着各判一次。 代码 #include<cstdio> #include...原创 2018-08-08 20:20:02 · 368 阅读 · 0 评论