学习
文章平均质量分 65
子衿君
要有最朴素的生活和最遥远的梦想,即使明天天寒地冻,山高水远,路远马亡
展开
-
ST表
这两天学习RMQ的离线算法学到了ST表相比于线段树,他的效率更高,预处理O(NlogN),查询O(1)预处理原理:动态规划用a[1…n]表示一组数f[i,j]是a[i]到a[i+2^j-1]的最大值也就是以a[i]为起点,连续2^j个数的maxf[i][j]=max(f[i][2(j-1)],f[i+2(j-1)][j-1]void ST() { log[0]=-1; //这样才...原创 2018-10-28 21:08:33 · 136 阅读 · 0 评论 -
网络流学习记录
文章目录最大流:dinic最大流模板:优化做题思想(再不冒个泡我都以为我退役了)最大流:dinic最大流模板:(luoguP3376最大流模板)关于网络流的讲解其实网上很多,具体的这里就不再多说了,就说几点新学网络流要注意的地方吧:cnt要赋上初值,要么为-1,要么为1,这样它是从2或者0开始的,保证了每次异或后的两个边是对应的大部分情况下,尽量使用dinic算法,虽然说EK也是很...原创 2019-02-14 21:51:24 · 141 阅读 · 0 评论 -
题解:普通平衡树
(内容更新ing)文章目录Treap树状数组SBT树fhq_treapSplayTreap首先是标准的Treap,楼上的dalao们已经说的很清楚了// treap my 数组#include <algorithm>#include <iostream>#include &amp原创 2019-02-15 16:19:28 · 297 阅读 · 0 评论 -
快(gui)速乘
有的时候,普通的乘法然后取模,在乘的过程中会爆 long long,所以我们需要使用快速乘有一种基于快速幂的算法的快速乘,复杂度(logn)inline ll quick_mul(ll a,ll n,ll mo){ ll ans=0; while(n){ if(n&1) ans=(ans+a)%mo; a=(a<<1)%mo;...原创 2019-02-18 15:42:53 · 229 阅读 · 0 评论 -
小蒟蒻的计算几何学习初步
文章目录点和向量表示法:运算四则运算点积叉积旋转直线点和向量表示法:点用横纵坐标来表示,所以我们定义一个结构体而向量可以用一个点表示,所以就直接当点来用struct Point { double x,y; Point(double x=0,double y=0):x(x),y(y) {};};typedef Point Vector;运算四则运算最简单的普通的加减乘除运算...原创 2019-03-11 08:06:07 · 254 阅读 · 0 评论 -
小蒟蒻的题解(代码)系列-----凸包入门题目集合
学习过斜率优化的童鞋们应该对凸包都不陌生,这里就不做详细的介绍了手动上代码 P2742 【模板】二维凸包#include <algorithm>#include <iostream>#include <cstdio>#include <cmath>using namespace std;const int N=100010;const...原创 2019-03-04 17:37:56 · 688 阅读 · 0 评论 -
题解:[模板] 割点
本蒟蒻一下tarjan算法,然后就不知死活的觉得自己应该都会了,然后就在割点上卡了几天捂脸,来发一篇题解其实,Tarjan算法的精髓是dfn和lowdfn[i]就是时间戳,即在什么时刻搜索到了点ilow[i]则是i点能回溯到的dfn最小的祖先low[a]=min(low[a],dfn[p]);ps:给的图不一定是连通图(卡的我啊啊啊)链式前向星开边要2倍(这个应该都知道吧)#i...原创 2019-03-04 17:42:26 · 196 阅读 · 0 评论 -
史上最(不)详细的莫比乌斯反演学习记录
由于楼主是个小蒟蒻,所以理解的很慢,所以就很详细首先先介绍一下什么是莫比乌斯函数(转自百度百科)莫比乌斯函数是一个数论函数,它同时也是一个积性函数(i.e.μ(ab) =μ(a)μ(b), a,b互质)当n不等于1时,n所有因子的莫比乌斯函数值的和为0也就是说∑d∣nμ(d)={1n=10n&amp;amp;amp;amp;amp;amp;amp;gt;1\sum_{d|n}\mu(d)=\begin{cases}1&amp;amp;amp;amp;amp原创 2019-03-14 18:19:25 · 845 阅读 · 0 评论 -
对拍
对拍是考试非常有用的一个东西,当你有一个暴力的代码和优化的可能是正解的代码时,如果不太确定,可以对拍一下,对拍的包又四部分组成gen,也就是数据生成,根据题目生成符合条件的随机函数,他是用随机函数实现的,然后生成的数据放在一个里面,我们暂且叫他text.txt。std,也就是暴力的,确保是对的程序要注意的是,他的文件输入是"text.in",输出是"std.out"my,同样,文件输入是...原创 2018-11-08 09:11:21 · 1608 阅读 · 0 评论 -
快读
快速读入的优化有时候是非常重要的,比如说,我们来看一个数据,四种都用的是freopen,没有开任何优化开关,来看一下测试数据读入了个2000000比较大的数(懒得造数据,直接用某次毒瘤考试的毒瘤数据代替),来看一下测试结果。这是最普通的cin读入,直接读入都超过了一秒,怎么玩(作为一个cin党,表示很绝望啊)这个是scanf读入,虽然比cin快不少。。。但速度感人。这个是普通的快读,用...原创 2018-11-08 08:59:15 · 2259 阅读 · 9 评论 -
树状数组学习记录
树状数组差不多长这样的首先先来简单的介绍一下lowbit函数,他是用来链接树状数组关系的函数int lowbit {returnx&amp;amp;amp;amp;amp;amp;amp;amp;(-x);}原创 2018-10-30 17:25:31 · 147 阅读 · 0 评论 -
最短路学习记录
其实。。最短路我们一个月前就学了。。但我比较弱,只掌握了弗洛伊德。。。咳咳,直到考试,才发现。。。于是开始重新学最短路弗洛伊德我觉得弗洛伊德是最快的 咳咳,打的最快的,他的代码只有。。。五行思想非常简单,带点动归的思想,,然后,,,比较简单,就直接上代码for(int k=1;k&amp;amp;amp;lt;=n;k++) for(int i=1;i&amp;amp;amp;lt;=n;i++) for(...原创 2018-11-03 15:20:10 · 132 阅读 · 0 评论 -
优先队列
转自https://blog.csdn.net/c20182030/article/details/70757660优先队列引入优先队列是一种特殊的队列,在学习堆排序的时候就有所了解,点“击”查看。那么优先队列是什么呢?说白了,就是一种功能强大的队列。如果不太清楚队列,可以看看我这篇博客。它的功能强大在哪里呢?四个字:自动排序。优先队列的头文件&&声明首先,你需要...转载 2018-10-30 18:36:29 · 766 阅读 · 0 评论 -
DP总结
线性动态规划背包问题01背包0-1背包:给定n个物品,每个物品有一个重量,一个价值,背包容量为v,物品不能拆开,求最多能获得的价值。分析:我们设f[i,j]表示前i件物品占据j的容量时物品的最大价值,那么f[i,j]=max(f[i,j],f[i-1,j-v[i]),我们发现第一维状态是可以省略的,也就是缩为f[i]表示占据容量为i时的最大价值,这个值要从大到小枚举求解,否则就会出现一个...原创 2018-11-06 19:44:45 · 459 阅读 · 0 评论 -
图论
图的存法邻接矩阵邻接矩阵是使用一个二维数组存储图,他的特点是,好打,好理解。but,占内存看起来没有邻接表高级邻接表邻接表通常常用的有两种,一种是用vecter模拟(咳咳,这不是边集数组差不多嘛),另外一种是链式前向星,链式前向星是一种数组模拟指针的存图方式他是长这个样子的:struct edge { int next; //上一个儿子的地址 int to; ...原创 2018-11-06 19:47:52 · 217 阅读 · 0 评论 -
二分
二分,是二分查找的简称,又叫折半查找,是一种用于快速查找的工具,也可以说是一种技巧与思想,要有二分的思想,很多算法和优化都用了二分。二分的思想首先,来看一道和二分没什么关系,但和二分的思想有关的题目有一个由n个节点连成的链状线路,最近突然出了故障无法正常工作了。经过一番研究,已经确定有且仅有一个节点出了故障。根据线路的特点,如果节点i出了故障,那么对于所有节点j(i≤j≤n)都将无法正常...原创 2018-11-06 20:34:03 · 208 阅读 · 0 评论 -
排序总结
排序的使用非常的广泛,各种排序各有所长,以下是各个排序的总结桶排序桶排序似乎是最快的滑稽一种排序,就像是有一个桶,每次丢进去,他的优点是复杂度低,差不多能到O(n)的级别,题目中遇到的不多,但如果数据范围较大,就必须用桶了。 void tong() { FOR(i,1,n) scand(&quot;%d&quot;,x),a[x]++,_max=max(_max,x); FOR(i,1...原创 2018-11-07 21:22:26 · 139 阅读 · 0 评论 -
那一波高精度
高精度是个好东西, 不会的话似乎没什么大事,很多题目卡数据都是要打高精的,比如那个鬼畜的国王游戏下面我们来看一下高精度代码(字符串转数组部分省略)//A+Bint l=max(l1,l2);FOR(i,1,l) { c[i]=a[i]+b[i]; c[i+1]=c[i]/10; c[i]%=10; if(c[l+1]) ++l;}//A-Bif(l1==l2&&am...原创 2018-11-07 21:37:27 · 113 阅读 · 0 评论 -
搜索
文章目录深度优先搜索实现剪枝广度度优先搜索实现优化记忆化搜索思想实现拓展经典例题总结(均是由易到难):可直接跳转深度优先搜索广度优先搜索记忆化搜索深度优先搜索深度优先搜索属于图算法的一种,英文缩写为DFS即Depth First Search.其过程简要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次。我们遇到的一些问题当中,有些问题我们不能够确切的找出数学模型,即...原创 2018-11-08 08:42:21 · 271 阅读 · 0 评论 -
题解:三维偏序(陌上花开)【CDQ分治】
题意:求所有的 xj&lt;xi yj&lt;yi zj&lt;zi ~~x_j&lt;x_i~~y_j&lt;y_i~~z_j&lt;z_i~~ xj<xi yj&a原创 2019-03-15 19:13:26 · 263 阅读 · 0 评论