题目大意:为了分辨那些qq是一个人的小号,我们需要写一套程序来判定哪些名称是相似的。相似的定义是有且只有一个位置的字符不同。
思路:数据范围不算太大,很明显的Hash,二分都不用。听老师说今年去CTSC考试的学长中有一个人没AC这个题是因为想多了。他当时写了Hash,然后闲的没事自己出一组数据卡掉了自己的hash,然后就不敢交hash了,最后交了一个Trie树,结果T了。。血的教训告诉我...
分类:
其他好文 时间:
2014-11-06 17:31:30
阅读次数:
204
后缀数组倍增算法超时,听说用3DC可以勉强过,不愿写了,直接用hash+二分求出log(n)的时间查询两个字符串之间的任意两个位置的最长前缀.我自己在想hash的时候一直在考虑hash成数值时MOD取多大,如果取10^18的话,那么两数相乘个就超LL了,但是取10^9的话又怕出现重复的可能大.后面才...
分类:
编程语言 时间:
2014-10-16 17:01:02
阅读次数:
245
题目大意:有一段优美的旋律,他们是由一些不超过88的音调组成的。若把五个音调算作一小节,问是否有超过一小节的韵律相同(差相同,且两个相同的韵律之间不能有重叠),并求这个最长的长度。
思路:这个题是男人八题之一,正解是后缀自动机,可是我不会。但是某神犇说过:“Hash大法好”。于是这个题Hash+二分也可以解决。分析时间复杂度,2w个点,二分logn,hash挂链判断O(kn),总复杂度O...
分类:
其他好文 时间:
2014-10-13 13:01:19
阅读次数:
198
Long Long MessageProblem's Link:http://poj.org/problem?id=2774Mean:求两个字符串的最长公共子串的长度。analyse:前面在学习后缀数组的时候已经做过一遍了,但是现在主攻字符串hash,再用字符串hash写一遍。这题的思路是这样的:1...
分类:
其他好文 时间:
2014-10-04 23:50:17
阅读次数:
265
题目大意:给定一个字符串,提供下列操作:
1.查询从x开始的后缀和从y开始的后缀的最长公共前缀长度
2.将x位置的字符修改为y
3.在x位置的字符后面插入字符y
看到这题一开始我先懵住了。。。这啥。。我第一时间想到的是后缀数据结构 但是不会写 而且后缀数据结构也不支持修改操作
后来无奈找了题解才知道是Hash+二分。。。 太强大了 Hash+二分打爆一切啊
用Splay维护这个字符串的...
分类:
Web程序 时间:
2014-10-03 14:22:14
阅读次数:
961
思路:枚举第一个字符串的位置,然后枚举最长公共前缀的长度,时间即会下降……
#pragma comment(linker, "/STACK:1024000000,1024000000")
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define mem(a,b) memset(...
分类:
其他好文 时间:
2014-09-30 19:14:09
阅读次数:
184
原本是《后缀数组——处理字符串的有力工具》论文中的第一道例题,发现自己智商不够,一个下午没有看懂后缀数组= =,就用hash写了#include #include #include #include using namespace std;typedef long long LL;const int...
分类:
其他好文 时间:
2014-09-16 23:31:31
阅读次数:
192
http://poj.org/problem?id=2774
想用后缀数组的看这里:http://blog.csdn.net/u011026968/article/details/22801015
本文主要讲下怎么hash去找
开始的时候写的是O(n^2 logn)算法 果断超时。。。虽然也用了二分的,,
代码如下:
//hash+二分
#include
#include
#incl...
分类:
其他好文 时间:
2014-08-10 01:47:49
阅读次数:
337
Problem Description刚学完后缀数组求回文串的瑶瑶(tsyao)想到了另一个问题:如果能够对字符串做一些修改,怎么在每次询问时知道以某个字符为中心的最长回文串长度呢?因为瑶瑶整天只知道LOL,当他知道自己省选成绩的时候就天天在LOL,导致现在的她实在是太弱了,根本解决不了这个问题,于...
分类:
其他好文 时间:
2014-08-07 12:33:50
阅读次数:
315
首先要明确一点,当数据规模达到百万时需用O(n)算法如何实现O(n)算法,其实是对原有算法的一种改进后者说是 原有算法+一点小性质=O(n)算法下面我将举几个例子来说明这一点:1.后缀数组中height数组的求法,暴力算法hash+二分 用上height[rank[i]]>=height[rank[...
分类:
其他好文 时间:
2014-08-06 22:08:02
阅读次数:
186