上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 26 下一页
摘要: 题目 题解 很明显的 \(dp\) \(f_u = \min(a_u, \sum_{(u,v) \in E}f_v)\) 然后套路的设 \(g_u\) 表示不管重儿子的 \(f_u\) \(f_u = \min(a_u, g_u+f_{\text{son}_v})\) 然后推一波矩阵 \[ \beg 阅读全文
posted @ 2021-01-23 10:23 leiyuanze 阅读(107) 评论(0) 推荐(0)
摘要: 题目 题解 对于 \(m=1\) 这档分 我们可以 \(dp\) 然后斜率优化 具体来说就是 \(f_i = f_j + \frac{(i-j)\times (i-j+1)}{2} + sum[j]-sum[i]\) 很容易斜率优化 那么 \(m=3\times 10^5\) 时 考虑 \(cdq\ 阅读全文
posted @ 2021-01-23 08:16 leiyuanze 阅读(110) 评论(0) 推荐(0)
摘要: 题解 显然树形 \(dp\) 一波 然后套路的运用标题 \(Code\) #include<cstdio> #include<iostream> #define ls (p << 1) #define rs (ls | 1) using namespace std; typedef long lon 阅读全文
posted @ 2021-01-22 11:42 leiyuanze 阅读(123) 评论(0) 推荐(0)
摘要: 题解 两只 \(\log\) 的动态 \(dp\) ! 相比标算倍增 动态 \(dp\) 既实用又好理解 \(Code\) #include<cstdio> #include<iostream> #define ls (p << 1) #define rs (ls | 1) using namesp 阅读全文
posted @ 2021-01-22 10:31 leiyuanze 阅读(161) 评论(0) 推荐(0)
摘要: 题解 本题的解法是丰富多彩的! 线段树做法是极好的 代码非常之少 一个很显然的想法是维护 \(n+1\) 颗线段树 那要怎么维护才能不爆空间呢? 我们发现尽管 \(n \times m\) 那么大 但 \(q\) 相比 \(n \times m\) 小得多 也就是说变动的点比较少 于是我们抓住这点 阅读全文
posted @ 2021-01-22 07:37 leiyuanze 阅读(139) 评论(0) 推荐(0)
摘要: 题目 有 \(X+Y+Z\) 个三元组 \((x[i],y[i],z[i])\),请你从每个三元组中挑数,并满足以下条件: 1、每个三元组中可以且仅可以选择一个数(即 \(x[i],y[i],z[i]\) 中的一个) 2、选择 \(x[i]\) 的三元组个数恰好为 \(X\) 3、选择 \(y[i] 阅读全文
posted @ 2021-01-20 08:40 leiyuanze 阅读(82) 评论(0) 推荐(0)
摘要: 题目 城市中有一条长度为 \(n\) 的道路,每隔 \(1\) 的长度有一个公交车站,编号从 \(0\) 到 \(n\),学校在 \(0\) 号车站的位置。其中每个公交车站(除了 \(n\) 号车站)有两个属性 \(c_i\) 和 \(v_i\),代表从这个公交车站出发的公交车的性质。\(c_i\) 阅读全文
posted @ 2021-01-19 08:35 leiyuanze 阅读(243) 评论(0) 推荐(0)
摘要: 分析 一个比较显然的方式是 设 \(f_{i,j,x,y}\) 表示达到空格所处位置为 \((i,j)\) 且特殊格位置为 \(x,y\) 的状态的最少步数 一次可以交换空格和相邻格,代价为 \(1\),\(bfs\) 转移即可 但确实时间无法接受 我们想到转移时 当且仅当空格和特殊格相邻时特殊格的 阅读全文
posted @ 2021-01-18 08:05 leiyuanze 阅读(263) 评论(0) 推荐(0)
摘要: 题目 到处都有 闲话 碰巧考场上出了 \(Noip\) 原题 然后这题自然而然想到 预处理一个点开始分别由 \(A,B\) 驾驶会走到的下一个点 然后用预处理的数组求答案 当然你会发现 \(X=X0\) 这一问和后面的问的解法没什么区别 这都不是重点 \(ccf\) 很良心给暴力 \(70\) 分 阅读全文
posted @ 2021-01-15 21:23 leiyuanze 阅读(191) 评论(0) 推荐(0)
摘要: 分析 一个非常显然的单调队列+线段树的常规题 当然,扫描线一样一样的 但因为以前是直接动态开点的,所以这次打个离散化版本 \(Code\) #include<cstdio> #include<algorithm> #include<iostream> #define LL long long #de 阅读全文
posted @ 2021-01-15 08:09 leiyuanze 阅读(76) 评论(0) 推荐(0)
摘要: 可持久化并查集 性质 可持久化并查集 = 可持久化数组 + 并查集 = 主席树 + 并查集 时间复杂度 \(O(n log^2 n)\) \(Code\) #include<cstdio> #include<iostream> using namespace std; const int N = 2 阅读全文
posted @ 2021-01-01 15:48 leiyuanze 阅读(122) 评论(0) 推荐(0)
摘要: 题目 大整数开方,求整数部分,$1 \le n \le 10^{400}$ 分析 二分即可 然后是高精基操 \(Code\) #include<cstdio> #include<cstring> #include<iostream> using namespace std; char s[10005 阅读全文
posted @ 2020-12-12 11:54 leiyuanze 阅读(226) 评论(0) 推荐(0)
摘要: 题目 区间 $01$ 背包 $1 \le l_i \le r_i \le n \le 20000,1 \le q \le 100000,1 \le m_i \le 500, 1 \le w_i \le 500, 1 \le v_i \le 10^6$ 分析 显然,我们考虑区间背包的合并 于是可以考虑 阅读全文
posted @ 2020-12-04 15:03 leiyuanze 阅读(221) 评论(0) 推荐(0)
摘要: 题目 分析 由大题目知此题分块 注意处理前驱下标的合法性 \(Code\) #include<cstdio> #include<cmath> #include<algorithm> using namespace std; const int N = 1e5 + 5; int n, a[N], t[ 阅读全文
posted @ 2020-12-03 20:08 leiyuanze 阅读(180) 评论(0) 推荐(0)
摘要: 题目 网上搜 分析 我们可以认为插入一本书是在树中第 \(k\) 的位置进行插入操作 其中 \(k\) 为这本放入书架后的位置 考虑 \(fhq-treap\) 实现 我们将书编号为 \([0,n-1]\) 那么如果插入的书的位置为 \(k\),实际上是在树中位置为 \(k+1\) 将前 \(k\) 阅读全文
posted @ 2020-12-01 13:45 leiyuanze 阅读(120) 评论(0) 推荐(0)
上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 26 下一页