算法笔记
Fatdog Jo
想打ICPC呜呜呜
展开
-
动态逆序对,记校赛怨念
上周末的校赛决赛,A题是一道动态逆序对,这本是一道省选难度的模板题,P1393 动态逆序对 但因为数据过水,被我们暴力切了(在这里感谢sugar大佬)。 那么一道动态逆序对的正解究竟是什么呢?我们不能被人按在地上摩擦还最后还一无所知吧。经过一段时间的研究后,算是有所领悟,我决心做一点笔记。 什么是逆序对?? 对于给定的一段正整数序列,逆序对就是序列中 ai > aj 且 i < j...原创 2019-04-07 16:46:55 · 165 阅读 · 0 评论 -
线段树 学习笔记
P3372 【模板】线段树 1 这是很久以前打过一遍的求区间和的模板,但也就是照着题解敲一遍,半懂不懂想着之后再说,最近愈发感到树状数据结构的重要性,线段树得好好学了,所以拿粗来好好看,好好学。 在看代码之前先上两篇dalao的线段树笔记 线段树从零开始 线段树详解 #include<bits/stdc++.h> #define maxn 1000005 #define FOR(a, ...原创 2019-04-12 17:34:45 · 107 阅读 · 0 评论 -
差分数组 学习笔记
我想想我第一次接触差分数组算法,是在洛谷上找树状数组线段树题的时候,遇到的 P1083 借教室。看到题解里有一篇号称更好理解也更好实现的算法,那我为什么不学? 差分数组 首先要说的是,差分数组的思想与前缀和的思想是密不可分的,不如说差分数组就是前缀和数组的逆运算 我们平时是这么思考前缀和数组的? 用sum[i]来存储前i个数的和,然后用sum[r]-sum[l-1]来表示 l ~ r 之间所有数...原创 2019-04-21 14:10:38 · 257 阅读 · 0 评论 -
堆 学习笔记
堆总是一棵完全树,堆中某个节点的值总是不大于或不小于其父节点的值。 先上一道堆的模板题(小根堆)P3378 【模板】堆 ,在不用stl的前提下手写堆,其实就是通过插入和删除来维护堆。具体操作见代码。(因为用C语言提交,多写了一个swap规则) #define swap(a, b) swap_temp=a;a=b;b=swap_temp void Insert(int x) { int n...原创 2019-04-19 11:56:49 · 128 阅读 · 0 评论