随笔分类 -  题解

上一页 1 2 3 4 5 6 7 8 9 10 ··· 18 下一页
摘要:\(\text{Solution}\) 显然 \(dp\),\(f_x = min_{y\in subtree_x}f_y + a_x \cdot b_y\) 必然可以用李超线段树解决 在树上就线段树合并即可 当然可以树上启发式合并省去线段树合并,然后李超树维护 不过显然前者更好打 既然是斜率优化, 阅读全文
posted @ 2021-11-16 20:13 leiyuanze 阅读(38) 评论(0) 推荐(0)
摘要:\(\text{Solution}\) 明显有 \(DP\) \[ f_i = f_j + 1(j < i,Mx_j \le a_i,a_j \le Mn_i) \] 然后 \(CDQ\) 分治即可 注意分治顺序 \(\text{Code}\) #include <cstdio> #include 阅读全文
posted @ 2021-11-14 21:11 leiyuanze 阅读(37) 评论(0) 推荐(0)
摘要:\(\text{Solution}\) 一眼 \(ODT\) 为避免每次都数颜色数量,提前记录下来,每次修改更新下 \(\text{Code}\) #include <cstdio> #include <iostream> #include <set> #define re register usi 阅读全文
posted @ 2021-11-14 20:08 leiyuanze 阅读(27) 评论(0) 推荐(0)
摘要:\(\text{Naive Solition}\) 当然是 \(ODT\) 暴力啦 \(Luogu\) 煞费苦心加强了数据,于是就过不了了。。。 不过 \(LibreOJ\) 上可以过 #include <cstdio> #include <iostream> #include <set> #def 阅读全文
posted @ 2021-11-14 11:37 leiyuanze 阅读(56) 评论(0) 推荐(0)
摘要:\(\text{Solution}\) 不考虑起点区间和终点区间的限制,求区间中位数 可以二分中位数,大于等于中位数的位置赋为 \(1\),小于的位置赋 \(-1\) 当区间和大于等于 \(0\) 时此数才可能为中位数 因为有多个询问,但中位数数值只可能有 \(n\) 个 所以预处理时枚举当前中位数 阅读全文
posted @ 2021-11-13 14:48 leiyuanze 阅读(54) 评论(0) 推荐(0)
摘要:\(\text{Problem}\) 有一个有向完全图,所有的 \(u\) 到 \(v\) 的边权为 \(a_u\) 修改 \(m\) 此有向边边权,求最终图上两两点对的最短路之和 \(1\le n \le 10^5,1\le m \le 3000,1\le a_u \le 10^6\) \(\te 阅读全文
posted @ 2021-11-13 14:19 leiyuanze 阅读(128) 评论(0) 推荐(0)
摘要:简要题解 这套题比较 \(H_2O\) 建议题目背景美文共赏 \(\text{T1}\) 显然一个 \(O(n^3)\) 不能过的 \(dp\) 然而过了?! 用心在该卡时间的地方卡一卡 \(\text{Code}\) #include <cstdio> #include <algorithm> # 阅读全文
posted @ 2021-11-10 17:08 leiyuanze 阅读(143) 评论(0) 推荐(0)
摘要:\(\text{Solution}\) 树上主席树板子 \(\text{Code}\) #include <cstdio> #include <algorithm> #define re register using namespace std; const int N = 1e5 + 5; int 阅读全文
posted @ 2021-11-09 21:19 leiyuanze 阅读(20) 评论(0) 推荐(0)
摘要:\(\text{Solution}\) 又忘了线段树分治!! 显然维护一个上凸包 发现加点和删点可以变成限制存在时间 然后把点放在线段树上,线段树下标表示时间 加点时先把点按横坐标排序,然后就可以单调队列维护每个线段树节点的上凸包 询问再按斜率排序,这样可以弹点而不需要二分了 \(O(n \log 阅读全文
posted @ 2021-11-05 13:48 leiyuanze 阅读(41) 评论(0) 推荐(0)
摘要:\(\text{Solution}\) 很容易想到 \(dp\) \[ f_i = f_j + (h_i-h_j)^2 + \sum_{k=i+1}^{j-1}w_k \] 令 \(s_i = \sum_{k=1}^i w_i\) 则 \[ f_i = s_{i-1} + h_i^2 -2h_j \ 阅读全文
posted @ 2021-11-05 13:28 leiyuanze 阅读(39) 评论(0) 推荐(0)
摘要:简陋的拉格朗日插值法学习过程 题目 已知 $n$ 个点,确定了一个 $n-1$ 次多项式 $f$,求 $f(x)$ 拉格朗日插值法 $$ f(x)=\sum_{i=1}^ny_i\prod_{j \ne i}\frac{x-x_j}{x_i-x_j} $$ 即可 $O(n^2)$ 计算 模板 直接套 阅读全文
posted @ 2021-10-29 13:25 leiyuanze 阅读(257) 评论(1) 推荐(0)
摘要:#include <cstdio> #include <iostream> #define re register using namespace std; typedef long long LL; const int N = 3e5 + 5, P = 998244353, g = 3; int 阅读全文
posted @ 2021-10-22 20:55 leiyuanze 阅读(49) 评论(0) 推荐(0)
摘要:\(\text{Solution}\) 发现题目就是求 \(\sum[\prod_{i=1}^k x_i \le n]\) \(k \le 10^9\) 太可怕了 然而发现如果限定 \(x_i > 1\) 那么 \(i \le \log n\) 于是我们可以愉快地统计了 设 \(f_i(n)\) 表 阅读全文
posted @ 2021-10-15 20:52 leiyuanze 阅读(43) 评论(0) 推荐(0)
摘要:\(\text{Problem}\) 大意就是优化这样一个 \(dp\) \(f_{i}=\max f[j]+(i-j) \cdot (i-j-1)\) \(L[i] \le j < i,n\le 5 \times 10^6\) \(L[i]\) 给出且满足 \(L[x] \le L[x+1]\) 阅读全文
posted @ 2021-10-15 20:35 leiyuanze 阅读(46) 评论(0) 推荐(0)
摘要:\(\text{Solution}\) 第一部分参考 \(\text{LNOI2014 LCA}\) 在 \(k=1\) 时完全可行 因为对于每个 \(i\), 根到 \(y\) 的路径之和恰好是 \(dep[lca]\) 但当 \(k>1\) 呢? 此时我们要想办法弄出一个加数的方式,使根到 \( 阅读全文
posted @ 2021-10-08 13:17 leiyuanze 阅读(52) 评论(0) 推荐(0)
摘要:\(\text{Solution}\) 发现一个事情 把 \(i\) 到根的路径都加 \(1\),然后让 \(z\) 往上跳,跳到第一个加了数的点就是他们的 \(lca\) 废话 如果把 \(z\) 到根的值加起来,那么就是 \(\text{dep[lca]}\) 废话 如果把所有的 \(i\) 到 阅读全文
posted @ 2021-10-08 13:06 leiyuanze 阅读(35) 评论(0) 推荐(0)
摘要:\(\text{Problem}\) 维护一个序列 支持插入一个数,区间加,询问区间平方和 \(\text{Solution}\) 平衡树很模板的题了 考场打 \(fhq-treap\) 毫无悬念过了 读入有负数,快读注意! 打完之后发现有模数? 狂改代码,无脑乱加模,代码直接丑了 \(\text{ 阅读全文
posted @ 2021-10-06 14:25 leiyuanze 阅读(62) 评论(0) 推荐(0)
摘要:权值线段树套线段树模板 区间每个可重集插入一个数 把权值放外边,内部维护区间 在权值线段树上二分,内部查询数量 \(\text{Code}\) #include <cstdio> #include <iostream> #define LL long long using namespace std 阅读全文
posted @ 2021-10-05 20:28 leiyuanze 阅读(52) 评论(0) 推荐(0)
摘要:\(\text{Problem}\) 给出一个字符串,求经过重新排列的另一个字典序最小的字符串,满足:相同的位置上 原串与结果串的字符不同。不存在则输出空串。 \(\text{Solution}\) 考虑从第一位开始枚举匹配 如果这位匹配(即两个都不相同)某个字符后可以判断出剩下的字符能否合法匹配 阅读全文
posted @ 2021-10-05 16:30 leiyuanze 阅读(51) 评论(0) 推荐(0)
摘要:#【模板】笛卡尔树 \(\text{Code}\) #include <cstdio> #include <iostream> #define re register #define LL long long using namespace std; const int N = 1e7 + 5; i 阅读全文
posted @ 2021-09-10 13:13 leiyuanze 阅读(57) 评论(0) 推荐(2)

上一页 1 2 3 4 5 6 7 8 9 10 ··· 18 下一页