【题目大意】 给定n个数和两个长度为n*5的序列,两个序列中的数均有1..n组成,且1..n中每个数恰好出现5次,求两个序列的LCS。 【思路】 预处理每个数字在a[i]中出现的五个位置。f[i]示以a[i]为末尾的最长公共子串(*这样就可以避免讨论交叉)。 依次处理b[i],对于每个b[i]找到a ...
分类:
编程语言 时间:
2016-08-09 12:09:09
阅读次数:
230
1264: [AHOI2006]基因匹配Match Description 基因匹配(match) 卡卡昨天晚上做梦梦见他和可可来到了另外一个星球,这个星球上生物的DNA序列由无数种碱基排列而成(地球上只有4种),而更奇怪的是,组成DNA序列的每一种碱基在该序列中正好出现5次!这样如果一个DNA序列 ...
分类:
编程语言 时间:
2016-07-31 01:37:48
阅读次数:
195
bzoj1269[AHOI2006]文本编辑器editor 题意: 维护一个字符串,支持插入,删除,翻转操作。 题解: C++有个库里面有个容器叫rope,可以实现可持久化平衡树,然而本题只要它的插入、删除、截取字符串功能就行了,翻转怎么办?维护一个倒序的rope即可。 代码: 20160620 ...
分类:
其他好文 时间:
2016-07-24 17:42:14
阅读次数:
145
1、题意:各种splay操作,一道好的模板题2333
2、分析:splay模板题,没啥解释QAQ
#include
#include
#include
#include
#include
using namespace std;
#define M 2000010
inline int read(){
char ch = getchar(); int x = 0, f ...
分类:
其他好文 时间:
2016-07-13 16:58:32
阅读次数:
169
有一定思维难度的题目。。看了mps大爷的题解才会做(%%% mps) 考虑暴力O(n^2)dp的算法,只有当A[i] == B[j]时才会+1。我们可以利用这个性质,记录下每个数在A[i]中的5个位置。然后从前往后扫描B,顺便转移。转移时要维护前缀max,这个可以用树状数组随意维护一下。时间复杂度是
分类:
其他好文 时间:
2016-02-27 15:02:04
阅读次数:
164
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1264因为每个字符至多出现5次,在A中记录下来。然后在B中扫一遍,因为a[i]=b[j]时f[i]++,所以维护一个树状数组记录最大值就可以了。注意转移的顺序#include#include#in...
分类:
其他好文 时间:
2016-01-11 23:34:50
阅读次数:
300
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1266Description可可和卡卡家住合肥市的东郊,每天上学他们都要转车多次才能到达市区西端的学校。直到有一天他们两人参加了学校的信息学奥林匹克竞赛小组才发现每天上学的乘车路线不一定是最优...
分类:
其他好文 时间:
2015-12-19 15:04:28
阅读次数:
177
先对原图求一遍最短路。。这里用什么算法都行,毕竟N很小直接floyd就可以啦。。然后把可以当做最短路上的边加入到一个新图当中去。。求一遍最小割(最大流)就好啦。。可以当做最短路的的边的条件:G[1][u]+time+G[v][N]=G[1][N]然而这题我WA了三次。。因为没有在跑完最短路后重新建图...
分类:
其他好文 时间:
2015-12-16 21:22:47
阅读次数:
239
序列最大长度2w * 5 = 10w, O(n²)的LCS会T..LCS 只有当a[i] == b[j]时, 才能更新答案, 我们可以记录n个数在第一个序列中出现的5个位置, 然后从左往右扫第二个序列时将第一个序列对应位置的值更新, 用树状数组维护. 时间复杂度O(nlogn)-----------...
分类:
其他好文 时间:
2015-07-22 20:36:56
阅读次数:
112
splay..( BZOJ 1507 题目基本相同..双倍经验 )-----------------------------------------------------------------------------#include#include#include#include#define ...
分类:
其他好文 时间:
2015-06-22 20:35:45
阅读次数:
280