![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
文章平均质量分 78
DKACVenus
蒟蒻OIER/fgo崩崩崩舰B玩家/纯正24k蒻鸡
展开
-
基础算法 - 贪心入门
贪心贪心,顾名思义,就是说你要很贪 (当然你可能会被抓) 不同于 动态规划 的目光长远,贪心往往鼠目寸光,只注重眼前的利益 而这也是贪心的定义: 在当前情况下寻找 局部 最优解 所以当你确定一道题目是贪心时,不要想太多,每次取最优即可 纵使后面可能会有更好的情况,那也不关咱们的事 (谁让咱们贪呢)例题Luogu P2095 营养膳食原创 2017-12-06 10:47:04 · 541 阅读 · 0 评论 -
树链剖分瞎入门
本文旨在让读者背代码前言在做题时,我们可能会遇到这样一类问题:给定一棵 nnn 个结点的树和 mmm 次操作,操作有两种,一种是给定两个结点,让连接两个结点的路径上的所有点权值加上一个值,另一种是查询路径上所有点的权值和。n≤1e5n\le 1e5n≤1e5,m≤2e5m\le 2e5m≤2e5。如果是最后统一输出结点权值,用树上差分+DFS\text{DFS}DFS 就能轻松水过,而...原创 2019-01-09 19:07:07 · 406 阅读 · 1 评论 -
最小费用最大流——EK & zkw费用流
洛谷博客链接:->Click Here<-,求捧场来糊一篇博客……顺便可以记记模板啥的……废话不多说直接进入正题……Edmonds-Karp前置芝士:SpfaSpfaSpfa核心思想算是贪心吧……每次跑一遍SpfaSpfaSpfa,以边的费用跑一遍最短路,这样可以确保找到一条费用最小的路径,然后在跑的过程中计算出流量并记录路径,然后把路径上的边的流量都减掉就行了模板如...原创 2018-11-27 09:53:27 · 984 阅读 · 0 评论 -
最大流算法——Dinic & 当前弧优化
洛谷博客地址:->Click Here<-,求捧场不会写EKEKEK的蒟蒻【我】哭出了声所以来讲讲DinicDinicDinic好了……DinicDinicDinic的核心思想就是先跑一遍BfsBfsBfs,为每个位置设置一个高度,一个点的高度为前一个点+1+1+1(如果某一条边已经满流则不设置)在解释为什么要给图上的点设置高度,即设置所谓的分层图之前,我们先来讲讲网络流的建...原创 2018-11-27 09:44:22 · 1272 阅读 · 2 评论 -
最小生成树——Kruskal
洛咕博客地址:−&gt;ClickHere&lt;−-&gt;Click Here&lt;-−>ClickHere<−,求捧场万金油KruskalKruskalKruskal据说PrimPrimPrim适用于稠密图?然而好久没写了……emmemmemm算了江一下KruskalKruskalKruskal好了……因为KruskalKruskalKr...原创 2018-12-04 16:37:16 · 202 阅读 · 0 评论 -
最小树形图——朱刘算法
洛咕博客地址:−&gt;ClickHere&lt;−-&gt;Click Here&lt;-−>ClickHere<−,求捧场最近想找最小生成树的题做,奈何难度有限,点进的蓝题紫题都和“生成树”么得什么关系……于是就莫名找到了一道最小树形图的题,然后当然不会辣……瞎学了一下,还是啥都不会,但毕竟咱们有时间,磨了一会儿总算是懂了一点……进入正题好了...原创 2018-12-04 16:35:37 · 448 阅读 · 0 评论 -
NOIP2018 提高组 Day1 题解
今年原地起爆,没进复赛,看别的dalao码代码各种AK虐场心痒痒,来写个题解Day2还在肝,就先写Day1吧……T1NOIP2013年原题,用个滚动数组就能水过去了……(不用应该也行吧)做法大概是从头开始扫,记录每个位置的深度,然后读入一个深度,如果后面的更深就需要多填 后面的深度−-−前面的深度 次#include&lt;bits/stdc++.h&gt;using namespa...原创 2018-11-13 08:25:40 · 1222 阅读 · 0 评论 -
P1419 寻找段落 - 二分答案+前缀和+单调队列
题目链接首先读题,可以发现这道题让我们求的是在长度尽可能短的情况下和尽可能大,考虑二分答案。由于让我们求的是一段连续序列的和,考虑前缀和。因为让我们求的平均值不可能比序列里最大的数大,亦不可能比最小的数小,可以由此确定二分的边界。而因为我们要寻找的是长度在[S,T][S,T][S,T]之间的最大子段和,很容易想到的就是单调队列。所以我们在每次二分平均值时先建立前缀和,再用单调队列求出最大...原创 2018-10-16 07:18:14 · 299 阅读 · 0 评论 -
分块入门——蒟蒻骗分的利器
分块分块,顾名思义,就是将数列分成很多块,在进行区间操作时可以直接对一些块进行操作,可以大大降低时空复杂度。为了维护时空平衡,我们在分块时一般取n\sqrt{n}n为一块,分为n\sqrt{n}n块,然后再按照数据本身确认是否需要添加不完整的一块。当然,这并不是唯一的,例如[Violet] 蒲公英这道题目的暴力分块做法时间复杂度为O(NT2+MN/T)O(NT^2+MN/T)O(NT2+M...原创 2018-09-26 16:12:12 · 346 阅读 · 2 评论 -
基础算法 - 二分查找 / 二分答案入门
没错!你没有看错! 我来写那个让我讨厌至极的二分了 二分真的很迷,有的时候必须用二分的地方看不出要用二分,然后就一片TLE 抱怨到这里,我们来讲讲二分的原理 二分二分,顾名思义,就是将查找的区间分成两半,找中间的部分,然后判断查找原创 2018-01-17 21:26:59 · 3991 阅读 · 4 评论 -
“剑锋OI”普及组多校联盟系列赛(16)#Sooke#MerryChristmas 题解报告
比赛链接 剑锋OI链接 题目作者的博客T1 白雪皑皑的圣诞自古T1水题,这题虽有一个非常NB的名字,但是也逃脱不了水题的命运 一眼看过去,一片海阔天空——模拟 只需枚举每个时间点,加上时间点下的雪,再计算能堆多少个雪人即可 要注意一个人每个时间点最多只能堆一个雪人,所以当能堆的雪人大于人数时,加上人数而不是雪人数 代码如下#includeint n,m,k,p,t,a原创 2017-12-26 21:03:06 · 418 阅读 · 1 评论 -
动态规划DP入门 0-1背包
动态规划DP入门 0-1背包人生第一篇博客……写个简单点的……作为一个炒鸡蒟蒻,在第一次看到0-1背包问题时,我就一个想法:贪心。 然后我就这么干了…… 预处理伪代码如下:for(int i=1;i<=n;i++){ cin >> w[i] >> c[i]; t[i]=c[i]/w[i];}也就是求利润率之类的……但是,这么写过的童鞋都知道,这样肯定是不能A题的原创 2017-11-01 12:54:19 · 401 阅读 · 1 评论 -
基础算法 - 高精度处理之加法
我们今天来聊聊高精度。 顾名思义,高精度就指精度很高 那么精度很高又指什么呢? 我们知道intint(整型)的表示范围是 −231-2^{31} ~231−1 2^{31}-1 longlonglong long(长整型)的范围是 −263-2^{63} ~ 263−12^{63}-1 那么我们就可以认为长整型精度较高,也可以说是表示范围更大 那么高精度有什么用处呢? 我们接下来看一原创 2017-12-22 19:56:49 · 462 阅读 · 0 评论 -
数据结构 - 单调队列入门
今天我们来聊聊单调队列 单调单调,就代表这种队列具有单调性 而单调性又分为单调递增与单调递减 举个栗子:1 4 5 6 7 8 10这就是一个单调递增的序列 而1 4 6 5 7 8 10就不是 而这和我们的“单调队列”又有什么关系呢? 单调队列的作用就是将区间最小或者最大值维护在队首 那么我们要怎么维护呢? 给同学们思考1年 大家解放自己的脑洞,试想一下如果一个队列从队首到队尾单原创 2017-12-21 19:29:27 · 325 阅读 · 0 评论 -
题解 codechef CHEFATs
两天来唯一一道可做题……其他的都是什么神仙题啊【拍桌】因为要维护∏i=lr(1−pi)\prod_{i=l}^{r} (1-p_i)i=l∏r(1−pi)这个东西,然后还有一个区间乘,直接搞就算是用线段树维护也肯定会 T\text{T}T,考虑用别的方法维护。此时会想到一个常用技巧,把 ∏\prod∏ 转换成 ∑\sum∑ 来做,也就是借助 ln\lnln 函数来把乘变成加,再用线段...原创 2019-02-15 18:41:04 · 329 阅读 · 0 评论