上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 26 下一页
摘要: 板子,正好温习一下主席树的写法 记得数组开 $32$ 倍!! \(Code\) #include<cstdio> using namespace std; const int N = 1e6 + 5; int rt[N] , a[N] , n , m , size; struct Segment{ 阅读全文
posted @ 2020-08-14 07:56 leiyuanze 阅读(99) 评论(0) 推荐(0)
摘要: 题目 略,luogu上有 解析 一眼费用流 然而怎么建图? 首先我们要挖掘题中的限制条件和性质 一个点只能经过一次 能走的天数最长 满足第二条的条件下走过的路程最短 那么显然是最小费用最大流了 对于后两条,我们发现我们求的最大流就要对应天数,最小费用就要对应路程最短 再联系第一条 一个点只能经过一次 阅读全文
posted @ 2020-08-13 22:09 leiyuanze 阅读(84) 评论(0) 推荐(0)
摘要: 仅仅是个模板 \(Code\) #include<cstdio> #include<queue> #include<iostream> #include<cstring> using namespace std; const int M = 50000 , N = 5000; int n , m , 阅读全文
posted @ 2020-08-13 21:21 leiyuanze 阅读(122) 评论(0) 推荐(0)
摘要: 题目 解析 \(Code\) #include<cstdio> #include<map> #include<iostream> #include<cstring> using namespace std; typedef unsigned long long LL; const int N = 7 阅读全文
posted @ 2020-08-13 20:13 leiyuanze 阅读(115) 评论(0) 推荐(0)
摘要: 题目 解析 多种解法:有上下界费用流(nb),树形DP等 而由于我太菜,前者待日后再补 下面介绍树形DP的解法 首先我们等发现一些性质: 最后使方差最小,树的每个点权值必然在 \([sum/n..sum/n+1]\) 之间,其中 \(sum\) 指石油总和 那么我们可不可以试试枚举最后有多少个点为 阅读全文
posted @ 2020-08-13 19:00 leiyuanze 阅读(112) 评论(0) 推荐(0)
摘要: 解析 也就是说建一棵权值线段树维护这些信息。要注意的是每次的最优解必然是 \(b\) 小的先做,故离线排序确定离散后的下标再依次求解 \(Code\) #include<cstdio> #include<algorithm> #define ls (k << 1) #define rs (ls | 阅读全文
posted @ 2020-08-13 16:18 leiyuanze 阅读(116) 评论(0) 推荐(0)
摘要: 解析 这道题比较水。 求最快什么时候做完作业? 如果要最快完成第i份作业,那么是i的前继那些作业都要完成之后才能够完成i,所以,为了尽快完成i,我们要把i的前继的作业全部先做完。 最慢什么时候做完作业? 也就是说再不完成i的前提下,我最多能够做多少作业。那哪些作业是不可以做呢?其实就是它的后继。 那 阅读全文
posted @ 2020-08-13 14:20 leiyuanze 阅读(113) 评论(0) 推荐(0)
摘要: 题目 求十进制 \(n!\) 在 \(m\) 进制下末尾 $0$ 的个数 分析 签到题 只要看 \(n!\) 有多少个 \(m\) 的倍数就好了 考虑分解 \(m\) 的质因子 然后根号计算每个因子在 \(n!\) 中有多少个 取能取到的最小值就行了 \(Code\) #include<cstdio 阅读全文
posted @ 2020-08-13 14:18 leiyuanze 阅读(157) 评论(0) 推荐(0)
摘要: 分析 近乎裸的 \(cdq\) 分治数点问题 我们考虑一个数被删去,它对删后区间逆序对个数的影响就是减去现存序列中前面比它大的个数再减去现存序列中后面比它小的个数 那么我们考虑如何处理时间限制 既然是“现存序列中”,也就是说删去时间比它晚的 那么能产生贡献的数对 \((i,j)\) 就要满足 \(i 阅读全文
posted @ 2020-08-12 20:56 leiyuanze 阅读(117) 评论(0) 推荐(0)
摘要: 题目 解析 设 \(f_{i,j}\) 表示 \(i+1..n\) 个人能受到 \(j\) 次攻击的概率 因为选人出局的顺序是无所谓的,所以我们设从 $1..n$ 依次选人出局 那么转移时需要分类,分类即加 选第 \(i\) 个人出局,那么 \(i+1..n\) 会受到 $1$ 次攻击。先前攻击了 阅读全文
posted @ 2020-08-12 16:54 leiyuanze 阅读(105) 评论(0) 推荐(0)
摘要: 题目 思路 结论题,我不会证明: 找到第一个 \(|S_n| \leq m + 1\),那么答案就是 \(m - |S_{n-2}|\) 证明?我说了我不会,就当结论用吧 这已经很恶心了 然而这题还要打高精度?! 斐波那契数列太大了 注意有很多细节问题 就当留个高精度的优美板子吧! \(Code\) 阅读全文
posted @ 2020-08-12 16:48 leiyuanze 阅读(152) 评论(0) 推荐(0)
摘要: 真正的模板!! 网上的标臭得一匹!! \(Code\) #include<cstdio> #include<algorithm> using namespace std; typedef long long LL; const int N = 1e6 + 5; int n , X[N << 1]; 阅读全文
posted @ 2020-08-11 22:39 leiyuanze 阅读(87) 评论(0) 推荐(0)
摘要: 题目大意 用边长为 \(k\) 的正方形在平面内覆盖,求它能覆盖的最大点权和 思路 $60$ 分:其实很容易想到按它们的横坐标先后排序,然后单调队列维护。复杂度 \(O(n k \log k)\) 然而考试时我直接修改了队列,导致 \(WA\) 到了 $10$ 分!改后又由于各种问题使它只 \(TL 阅读全文
posted @ 2020-08-11 19:41 leiyuanze 阅读(99) 评论(0) 推荐(0)
摘要: 留个高精度的模板 \(Code\) #include<cstdio> #include<cstring> using namespace std; int n , a[5005] , b[5005] , c[5005]; inline void Mul() { while (c[0]) c[c[0] 阅读全文
posted @ 2020-08-11 11:55 leiyuanze 阅读(130) 评论(0) 推荐(0)
摘要: 题目 求满足 \(a_i \leq a_j,b_i \leq b_j,c_i \leq c_j\) 的三元组的个数 输出个数范围为 \([0..n-1]\) 的每种个数出现的次数 解析 \(cdq\) 分治版题,三维数点 先让第一维排序,然后归并思想排序第二维 考虑分治的左区间对右区间的贡献 每次用 阅读全文
posted @ 2020-08-10 22:28 leiyuanze 阅读(131) 评论(0) 推荐(0)
上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 26 下一页