上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 26 下一页
摘要: 题意:给一串字符,需要你求不相同的回文子串个数.......同ural1297,链接:http://www.cnblogs.com/ziyi--caolu/archive/2013/06/09/3129877.html#include#include#includeusing namespace std;#define maxn 210000#define max(x,y) x>y? x:y#define min(x,y) x>y? y:xint dp[maxn][32],log2[maxn];int wa[maxn],wb[maxn],wsf[maxn],wv[maxn],sa[ 阅读全文
posted @ 2013-07-17 14:40 紫忆 阅读(437) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1743题意:给出一串字符,求不重合的最长重复子串..........我自己的一点想法:编完后发现,其实就是将height值分组,然后记录在二分答案时满足height值>=p的sa[i]的最大最小值,然后要是最大值减去最小值会>=p,这就说明两个子串的lcp值>=p并且它们的坐标也相差>=p,就自然满足题意.........#include#include#includeusing namespace std;#define maxx 20010int wsf[maxx],wa[maxx],wv[maxx],wb[ma 阅读全文
posted @ 2013-07-17 11:01 紫忆 阅读(1135) 评论(0) 推荐(1) 编辑
摘要: http://www.spoj.com/problems/REPEATS/题意:给一串字符,需要你求这一串字符中有连续重复的字符的重复次数.......思路:这是和poj3693一种类型的题目......这里是详细解答:http://www.cnblogs.com/ziyi--caolu/p/3193823.html注意:还需注意的地方,我一直图方便,再求lcp值时,总是从height值的起点到终点,其实应该是起点+1#include#include#includeusing namespace std;#define min(x,y) x>y? y:x#define maxn 5100 阅读全文
posted @ 2013-07-17 10:20 紫忆 阅读(636) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=3693题意:给出一串字符,需要求这串字符中的最长重复子串,要是有多个,输出字典序最小的.........我自己的一些想法:这个思路我一开始倒是没有看明白,慢慢的编下去,才懂了它到底是如何操作的......其实就是枚举多少个字符会匹配,然后求出它们的height值,再用这个值去除以长度,得到有多少个循环........具体看代码#include#include#includeusing namespace std;#define min(x,y) x>y? y:x#define maxn 100010int dp[maxn][33];i 阅读全文
posted @ 2013-07-16 17:48 紫忆 阅读(2874) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=2774题意:给你两串字符,要你找出在这两串字符中都出现过的最长子串.........思路:先用个分隔符将两个字符串连接起来,再用后缀数组求出height数组的值,找出一个height值最大并且i与i-1的sa值分别在两串字符中就好.....#include#include#includeusing namespace std;#define min(x,y) x>y? y:x#define maxn 200010int dp[maxn][33];int wa[maxn],wb[maxn],wsf[maxn],wv[maxn],sa[m 阅读全文
posted @ 2013-07-16 09:52 紫忆 阅读(5011) 评论(3) 推荐(1) 编辑
摘要: https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&category=30&page=show_problem&problem=2731题意:有t组测试数据,第一个是n,代表有n个城市,标号为0~~n-1,接下来的n行,依次是标号为0~~n-1个城市的坐标,然后有m个操作,road操作代表着将两个点联通,line操作代表询问,直线y=c穿过多少个州,这些州总共有多少个城市。州就是有两个及以上的城市联通所形成的东西........思路:我的初始思路是用并查集先链接 阅读全文
posted @ 2013-07-16 09:26 紫忆 阅读(585) 评论(0) 推荐(0) 编辑
摘要: Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有序的好处。下面举例说明什么是一对一的数据映射。比如一个班级中,每个学生的学号跟他的姓名就存在着一一映射的关系,这个模型用map可能轻易描述,很明显学号用int描述,姓名用字符串描述(本篇文章中不用ch 阅读全文
posted @ 2013-07-04 09:38 紫忆 阅读(497) 评论(0) 推荐(0) 编辑
摘要: vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。为了可以使用vector,必须在你的头文件中包含下面的代码:#include vector属于std命名域的,因此需要通过命名限定,如下完成你的代码:using std::vector; vector v;或者连在一起,使用全名:std::vector v;建议使用全局的命名域方式:using namespace std;1.vector的 阅读全文
posted @ 2013-07-04 09:29 紫忆 阅读(16045) 评论(0) 推荐(0) 编辑
摘要: 同ural1517链接:http://www.cnblogs.com/ziyi--caolu/p/3151622.html#include#include#includeusing namespace std;#define min(x,y) x>y? y:x#define maxn 200010int dp[maxn][33];int wa[maxn],wb[maxn],wsf[maxn],wv[maxn],sa[maxn];int rank[maxn],height[maxn],s[maxn];char str[maxn],str1[maxn];int cmp(int *r,int 阅读全文
posted @ 2013-06-23 21:57 紫忆 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 题意:求两串字符(0————255)的最长公共字串思路:先将两个字符链接起来,中间用一个不曾出现过的字符,然后直接求出height数组,然后根据它的特性,求出最长的公共字串,当然这个最长公共字串的坐标要符合一个在第一个串中,另一个在另一串中....这个好处理,直接根据sa数组特性,sa[i-1],sa[i]........可知#include#include#includeusing namespace std;#define min(x,y) x>y? y:x#define maxn 300010int dp[maxn][33];int wa[maxn],wb[maxn],wsf[ma 阅读全文
posted @ 2013-06-23 21:53 紫忆 阅读(575) 评论(0) 推荐(0) 编辑
上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 26 下一页