- 博客(4)
- 资源 (2)
- 收藏
- 关注
原创 POJ 1743
Musical Theme用了一个星期的时间学了一下后缀数组,然后将罗穗骞论文上的题目都做完。有些题写起来太蛋碎了。。。这道题是论文上的第一道题目,还是蛮简单的。。直接二分长度l,利用height数组将后缀分组,然后判断同组的是不是存在排名第i和j的后缀使得abs(sa[i] - sa[j]) >= l。#include #define maxn 20005int r[m
2013-01-22 22:56:08 529
原创 hdu 3068 and ural 1297
两道回文串的题目,关于回文串的题目有很多种解法。以前写回文串的题目都是采用后缀数组写的,今天无意中搜到了Manacher算法,就学了一下。发现Manacher算法真心简洁,复杂度低编程量低。后缀数组写起来得100来行的题目,Manacher写起来不到30行,无限ORZ。。。关于Manacher算法:http://wenku.baidu.com/view/3031d2d3360cba1aa811da
2013-01-22 22:18:57 538
原创 hdu 3234 Exclusive-OR
Exclusive-OR并查集的好题这里由于每次给定的是xi, xj的关系,并且可以会给定xi的值,所以我们需要3个数组来存储每个值的信息:v[i]表示i的值,p[i]表示i的父亲节点,d[i]表示v[i] ^ v[p[i]] 的值。 首先是并查集的查询操作。这里我们不仅需要压缩路径,更新x与根节点的关系,这里可以由抑或操作的传递性直接计算出来,同时如果已知x或者已知树根的值时,我们
2013-01-14 23:35:14 683
原创 uva 11645 Bits
uva 11645 Bits题目描述:一个数n的二进制表示中连续的11的个数记为f(n),例如f(111) = 2, f(1111) = 3,先给定n求ans = sum (f(i)) 0=解决办法:逐位确定举例说明:n = 1111, x1 = 11**, x2 = *11*, x3 = **11所以答案可以分成如下3个部分,即前两位是11的个数,中间两位是11的个数,后两位是1
2013-01-14 23:03:29 1434
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人