随笔分类 - 学习笔记
摘要:什么是分块 分块,顾名思义是一种将数据分成多块,以实现一些功能的算法。 分块算法实质上是一种是通过将数据分成多块后在每块上打标记以实现快速区间修改,区间查询的一种算法。其均摊时间复杂度为 分块的具体操作 分块 void create() { t=sqrt(n); f
阅读全文
摘要:1 基本概念 1.1 符号 异或是一种二进制的位运算,符号以 XOR 或 ^ 表示。 1.2 运算规则 相同为0,不同为1,即(可以看做二进制下的不进位加法) 1 ^ 1 = 0 0 ^ 0 = 0 1 ^ 0 = 1 1.3 运算性质 交换律: A ^ B = B ^ A 结合律: ( A ^ B
阅读全文
摘要:什么是数位DP 数位dp是与数字相关的一类计数问题。这这类问题中,一般给定一些限制条件,求满足第 小的数是多少,或者求区间 内有多少个满足条件的数。 本文主要讲述如何解决 求区间 内有多少个满足条件的数 这一类问题。 为什么要用数位dp 对于上述问
阅读全文
摘要:普通的打表 大家都会打,只需要暴力输出每个数对应的答案。十分地方便,但是,如果数据范围过大。代码根本记录不下那么多的答案,毕竟NOIP 的内存限制一般是 128MB。太多的数字实在是存不下。此时就请出了 分块打表 。 分块打表 分块打表是一种应用于答案范围较大的打表方法。使用此打表方法的前提是:答案
阅读全文
摘要:引言 ——“分层图最短路”顾名思意,可以知道是在分层的图上跑最短路得算法。当我开始学习这个算法是,看到这个算法名,总有些雨里雾里的。什么是分层,为什么要分层,怎么分层? 概念 概念:分层图最短路的模型就是在最短路模型的基础上加上 个决策。这 个决策,并不会影响图得结构,只影响
阅读全文
摘要:单源最短路 P3371 【模板】单源最短路径(弱化版) P4779 【模板】单源最短路径(标准版) dijkstra 普通版 时间复杂度为 #include<bits/stdc++.h> using namespace std; const int N=5e
阅读全文
摘要:因为luogu博客不知道为什么一直抽风,数学公式有渲染不出来,所以我直接用图片了... 1.定义 逆元素,是指一个可以取消另一给定元素运算的元素,在数学里,逆元素广义化了加法中的加法逆元和乘法中的倒数。 如果说 a 在模 p 意义下的乘法逆元是 x,那么 \(ax \equiv 1 \pmod{p}
阅读全文
摘要:manacher马拉车 https://www.luogu.com.cn/problem/P3805 闲言一下:花了一个中午终于把 manacher 给搞懂了。本文将以一个蒟蒻的身份来,来写写马拉车算法。首先请自行回顾暴力的 最长回文字符串 算法。首先我们将 通过枚举中心点,并扩展以该中心点为回文中
阅读全文