上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 39 下一页
摘要: FFT 的本质是在 $O(nlogn)$ 的时间内进行点值表达和系数表达之间的转换,并在 $O(n)$ 的时间内计算结果,故总时间复杂度为 $O(logn)$。 FFT注意事项 由于 tot 采用的是倍增的方式,因此实际内存开销可能是 $2(n+m)$。 多项式的项数和次数不同。 update at 阅读全文
posted @ 2019-05-04 15:15 shellpicker 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 题目大意:比较复杂,点 "这里" 看题。 题解:对于状态压缩 dp 来讲,阶段的确立十分重要。本题中,采用以层次为阶段进行状压 dp。 设状态 $f[i][S]$ 表示开凿到深度 $i$,当前已经打通的点集为 $S$ 时的最小花费。 则状态转移方程为 $$f[i][S]=min\{f[i 1][S' 阅读全文
posted @ 2019-05-02 22:50 shellpicker 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定一个长度为 N 的序列,每个位置有一个权值,现选出一些点,满足相邻的 M 个点中至多有 Q 个点被选择,求选出点权的最大值是多少。 题解:若没有相邻的限制,这道题类似于子集和问题,即:背包问题。考虑相邻的限制,对于每个点可以记录下一个状态,代表以这个点结束,向前 M 个点的选择情况,0 阅读全文
posted @ 2019-05-02 21:50 shellpicker 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定一个 N 个数字组成的序列,求 $$ \left(6 \times \sum_{i=1}^{N} \sum_{j=i+1}^{N} \sum_{k=j+1}^{N} A_{i} \times A_{j} \times A_{k}\right) \bmod \left(10^{9}+7\ 阅读全文
posted @ 2019-04-30 22:04 shellpicker 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 题目大意:求 $$\sum\limits_{i=1}^n\sum\limits_{j=1}^ngcd(i,j)$$ 题解: 最重要的一步变换在于。 $$\sum\limits_{k=1}^n k \sum\limits_{d=1}^{\lfloor{n\over k}\rfloor}\mu(d)\l 阅读全文
posted @ 2019-04-30 21:29 shellpicker 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 题目大意:维护一个长度为 N 的序列,支持单点删除,区间求最值。 题解:实际需要维护的操作是指定下标查询,区间下标求最值。 采用线段树维护区间的长度,若某个点被删除,则其长度减一。找到指定下标可以采用在线段树上二分序列长度,对于区间最值查询也是如此。 代码如下 cpp include define 阅读全文
posted @ 2019-04-30 00:13 shellpicker 阅读(297) 评论(2) 推荐(0) 编辑
摘要: 题目大意:给定一个长度为 N 的字符串,求前 K 个长度为奇数的回文子串的长度的乘积是多少。 题解:利用回文自动机,将所有长度的回文串和个数求出来,按照长度排序进行模拟即可。 代码如下 cpp // luogu judger enable o2 include using namespace std 阅读全文
posted @ 2019-04-29 09:14 shellpicker 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定一个长度为 N 的字符串 S,求 S 的最长双回文子串的长度,双回文子串定义为是 S 的一个子串,可以分成两个互不相交的回文子串。 题解:利用回文自动机 len 数组的性质,即:len 数组记录的是以每个点 i 字符结尾的,向左可以延伸的,最长回文串的长度。正向遍历一遍串 S,统计出对 阅读全文
posted @ 2019-04-29 08:11 shellpicker 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定一个长度为 N 的字符串,定义一个变量为该字符串的回文子串长度乘以该字串出现的次数,求这个变量的最大值是多少。 题解:学会了回文自动机。 回文自动机是两棵树组成的森林结构,并通过 fail 指针构成一棵回文树结构。 回文树的节点存储的是每个子串的最长回文后缀,最长回文后缀的定义是:除了 阅读全文
posted @ 2019-04-28 19:20 shellpicker 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 题目大意:NPC 子集和问题。 题解:先搜索一半的物品重量和,记录在一个数组中,并将该数组排序并去重。再搜索另一半物品,到达目标状态后,在前一半物品记录的重量中查找小于当前剩余重量的最大值,更新答案即可。时间复杂度为 $O(n 2^{n \over 2})$。 代码如下 阅读全文
posted @ 2019-04-28 00:56 shellpicker 阅读(230) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 39 下一页