首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
3294专题
poj 3294(Life Forms) 2分+ 后缀数组
我曾用字符串hash写,但是超时了。只能用后最数组了。大致思路:用不同的符号吧字符串连接起来,构建后缀数组,然后2分答案,依次扫描后缀数组,看是否瞒住条件。 VIEW CODE #include<cstdio>#include<vector>#include<cmath>#include<algorithm>#include<cstring>#include<cassert>#
阅读更多...
POJ 3294 后缀数组:求不小于k个字符串中的最长子串
思路:先把所有的串连接成一个串,串写串之前用没出现过的字符隔开,然后求后缀;对height数组分组二分求得最长的公共前缀,公共前缀所在的串一定要是不同的,不然就不是所有串的公共前缀了,然后记下下标和长度即可。 刚开始理解错题意,然后不知道怎么写,然后看别人题解也不知道怎么意思,后面看了好久才知道题目意思理解错了。 时间四千多ms,别人才一百多ms,不知道别人怎么做的…… #include
阅读更多...
POJ 3294 后缀数组+二分
你可能想知道为什么大多数外星生命形式类似于人类,不同的表面特征,如身高,颜色,皱纹,耳朵,眉毛等。几个人没有人类的相似性;这些通常具有几何或无定形形状,如立方体,油滑层或尘云。 答案是在星际迷航 - 下一代的第146集,题为追逐。事实证明,在绝大多数象限的生命形式最终与一个大片段的共同的DNA。 给定被表示为字母串的几个生命形式的DNA序列,您将找到由其中一半以上共享的最长子字符串。 输入 标准输
阅读更多...
POJ - 3294 Life Forms
1.题面 http://poj.org/problem?id=3294 2.题意 给你n个字符串,希望你求出一个长度最长的子串s,s在至少n/2个字符串中出现过, 3.思路 将所有的数字连在一起后使用后缀数组,二分答案 第二种方法也是先用后缀数组处理,后面使用一个尺取法 二分 800+ms 尺取法 1200+ms 我觉得set的常数产生了很大的影响 4.代码 二分
阅读更多...