摘要:
最大子段和问题及变式 题解 Lim:除 T8,T9 外所有题目的 $a_i$ 均可能为负,所有题目的 $a_i$ 均为整数 T1 P1115 最大子段和 Tag: 线性dp / 单调队优线性dp / 分治,递归 题目描述: 给出一个长度为 $n$ 的序列 $a$ ,选出其中连续且非空的一段使得这段和 阅读全文
摘要:
dp 单调队列优化 T1 P6033 [NOIP2004 提高组] 合并果子 加强版 题目描述: 给定 $n$ 个数,每次可以将两个数合并并获得为两数和的分数,求合并到只剩一个数时的最小总分数. $1 \le n \le 10^7 \quad 1 \le a_i \le 10^5$ 思路: 新知识1 阅读全文
摘要:
dp斜率优化 T1 hdu3507 打印文章 题目描述: 给定一个含 \(n\) 个数的数列 \(C_n\) 和 \(M\) ,将 \(C_n\) 分为若干段 \([a,b]\) ,求所有子段的 \(W\) 之和的最小值. \[ W_{a,b}=(\sum^b_{i=a}C_i)^2+M \] \( 阅读全文
摘要:
第二章 前缀和、差分与离散化 例题 *T1 P1719 最大加权矩形 题目描述: 给定一个n*n的矩阵,求出其中元素和最大的一块子矩阵的元素和。 \(n\le120\) 思路1: 矩阵前缀和 \(O(n^4)\) 先执行一次矩阵前缀和。 然后依次枚举每对点,$O(1)*n^4$遍历每一个子矩阵。 * 阅读全文
摘要:
第一章 常见优化技巧 例题 T1 P1102 A-B数对 题目描述: 给出一串数以及一个数字C,要求计算出所有A-B=C的数对的个数。 n<=2e5 思路: 将数列排序,去重并统计每个数的出现次数。 对于每一个数a[l],用lower_bound寻找是否存在a[r]=a[l]+c,直到a[l]+c> 阅读全文
摘要:
P4768 [NOI2018] 归程 核心思想: 以海拔为第一关键字对边进行从大到小的排序,然后修建kruskal重构树,这样就弄出了一颗以海拔为关键字的小根堆。然后对于每一棵子树,如果询问中的水位线是低于子树的根节点的,那么此时这棵子树中的所有叶子结点都是连通的。 将高海拔边建在靠近叶子节点的地方 阅读全文
摘要:
T1:寻找宝藏 对于原矩阵维护一个二维前缀和和后缀和,这样宝藏的数目就可以在两个点对上统计贡献,枚举其中一个点对,用 3*k个树状数组 寻找另一个点即可(本题的精髓,详见代码中//★★★ //*1) *0:题意 绿色部分算作两次! *1:(如上图) //f[]:矩阵前缀和 //g[]:矩阵后缀和 S 阅读全文