摘要: 给定n个序列,每个一行,每个序列是可以左右移动的,对于每行可以随意移动的情况下,求每列的和的最大值 n行(1 using namespace std; define ll long long int n,w,m,lg[1000100],st[2000100][23]; ll ans[1000100] 阅读全文
posted @ 2019-08-28 18:15 BECODE 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 给定一个长度为n的s序列,$s_{i}$表示前i 1个数中有比i小的数的总和,输出原序列p(1 n每个数出现一次) 解法一 树状数组: 倒序,对于每个$s_{i}$,找出从1 n中的未被利用且和为$s_{i}$的前缀和,则$p_{i}$为这些数中最大的数+1,每次找到后需要及时删去 此处查找使用倍增 阅读全文
posted @ 2019-08-28 09:20 BECODE 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 依旧是按照height数组分组的思想。 此处便于计算,将height重新定义为两个相邻名次的后缀的最长公共前缀共能产生多少个长度为k的公共子串。计算A的所有后缀和B的所有后缀之间的最长公共前缀的长度,把其中最长公共前缀长度不小于k的部分全部加起来。 具体方法:将字符串A和B连起来,中间用一个没有出现 阅读全文
posted @ 2019-08-04 13:24 BECODE 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 转载:https://www.cnblogs.com/liboyan/p/5011382.html 上面三个函数的功能是一样的,但是究其运行速度来说则不可同日语。为什么呢? 由于加法器和乘法器是完全流水线化的,这代表着他们可以一个时钟周期执行多条指令,参见我前面写的那一篇博文(优化的小细节)。减小代 阅读全文
posted @ 2019-08-04 09:08 BECODE 阅读(907) 评论(0) 推荐(0) 编辑
摘要: 后缀数组的一个简单应用,即计算在字符串中不可重叠的的最长重复子串的长度。 可以将问题转化为判定性问题:是否存在两个长度为k的子串是相同且不重叠的。利用height数组进行计算。把排序后的后缀数组分成若干组,其中每组后缀的height都不小于某一个下限。有希望成为最长公共前缀长度不小于k的两个后缀一定 阅读全文
posted @ 2019-08-03 22:37 BECODE 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 题目:poj.org/problem?id=3264 题意:求一段区间内最大值与最小值的差。 看到区间最值首先想到RMQ--ST算法。但本题出现在了kuangbin专题的线段树里。 用线段树也无思维难点,但有两个坑: 1. 查询函数中,区间不包含时的返回值。 2.用cin,cout会TLE。用c的输 阅读全文
posted @ 2019-07-13 12:17 BECODE 阅读(366) 评论(0) 推荐(0) 编辑