摘要:
简单来说这道题就是求一个 $N \times M$ 的矩阵的最大子矩阵和。 (因为求的是黑色石板与白色石板的数量差,所以代表白色石板的“0”可以看作 -1,这样就将问题转化为了求最大子矩阵和) 思路: 首先,这个子矩阵可以是任意大小的,而且起始点也可以在任何地方,所以,要把最大子矩阵找出来,我们要考 阅读全文
摘要:
这是我第二次参加 $NOIP$,尽管 $csp-s$ 组的题目的难度让我清晰的意识到随着信息学的学习逐渐普及化,它的难度也会逐年提升,但是因为有了前一次考 $NOIP$ 的经验,这次考试前并不是很紧张。 周一用了晚自习的时间看了看动态规划、搜索,之后又简单的复习了一下快速幂、gcd等代码。 T1,第 阅读全文
摘要:
初赛复习 计算机 计算机的分类 按年代分类 $1946 \text{ 至 } 1958 \quad \text{ 电子管}$ $1959 \text{ 至 } 1964 \quad \text{ 晶体管}$ $1965 \text{ 至 } 1970 \quad \text{ 集成电路}$ $197 阅读全文
摘要:
快读快写是利用 $getchar()$ 和 $putchar()$ 比 $cin$ 和 $cout$ 速度快的特点来对输入和输出进行优化 快读 int read(){ int x=0,f=1; char ch=getchar(); while(ch < '0' || ch > '9'){ if(ch 阅读全文
摘要:
写在前面 在 $OI$ 中,大多数情况下,善良的出题人为了避免高精度等大整数计算,常常会要求输出答案对一个数(大多是质数)取模的情况,但这衍生了一个问题:若题目中计算需用到除法而我们知道,除法是不能边除边取模的。 $a \equiv b \pmod{p}$ 在大部分情况下 $\lfloor\frac 阅读全文
摘要:
定义: 在大于1的自然数中,除了1和它本身以外不再有其他因数。 性质: 素数的个数无限多 所有大于2的素数都可以唯一地表示成两个平方数之差 当 $n$ 为大于2的整数时,$2^n+1$ 和 $2^n-1$ 两个数中,如果其中一个数是素数,那么另一个数一定是合数 如果 $p$ 是素数,$a$ 与 $p 阅读全文
摘要:
欧拉函数和欧拉定理 欧拉函数的定义 欧拉函数(Euler's totient function),即 $\varphi(n)$,表示的是小于等于 $n$ 和 $n$ 互质的数的个数。 比如说 $\varphi(1)=1$。 当 n 是质数的时候,显然有 $\varphi(n)=n-1$。 欧拉函数的 阅读全文
摘要:
一.莫队(静态莫队) 我们以 Luogu P3901 数列找不同 为例讲一下静态莫队 这道题是个绿题,因为数据比较弱,但真是一道良心的莫队练手题 莫队是由前国家队队长莫涛发明的 莫队算法的精髓就是通过合理地对询问排序,然后以较优的顺序暴力回答每个询问。处理完一个询问后,可以使用它的信息得到下一个询问 阅读全文
摘要:
Luogu P7771 【模板】欧拉路径 题意 给定一个 $n$ 个点 $m$ 条边的有向图,求该图字典序最小的欧拉路径。 数据范围 对于 50% 的数据,$n,m\le 10^3$。 对于 100% 的数据,$1\leq u,v\leq n\leq 10^5$,$m\leq 2\times 10^ 阅读全文
摘要:
单调队列,顾名思义就是一个元素之间的关系具有单调性的队列 我们通过一道例题来讲解 最大子序和 题目大意 给定一个长度为 $N$ 的整数序列(可能有负数),从中找出一段长度不超过 $M$ 的连续子序列,使得子序列中所有数的和最大。 $N,M \le 3 \cdot 10^5 $。 solution 计 阅读全文
摘要:
并查集(Disjoint--Set) 是一种可以动态维护若干个不重叠的集合,并支持合并与查询的数据结构。详细地说,并查集包括如下两个基本操作: $Find$, 查询一个元素属于哪一个集合。 $Merge$, 把两个集合合并成一个大集合。 为了具体实现并查集这种数据结构,我们首先需要定义集合的表示方法 阅读全文
摘要:
0、更新日志 2021.12.11 纠正了“3、实现”部分存在的的小问题;增加了 “0、更新日志” 2021.7.29 首次发布本文 感谢 $pyq$ 大佬对完善本文做出的贡献 1、综述 假设有编号从1到 $n$ 的 $n$ 个点,每个点都存了一些信息,用[L,R]表示下标从 $L$ 到 $R$ 的 阅读全文
摘要:
0. 最短路径问题介绍 问题解释: 从图中的某个顶点出发到达另外一个顶点的所经过的边的权重和最小的一条路径,称为最短路径 1. Dijkstra算法介绍 算法特点: 迪科斯彻算法使用了广度优先搜索解决赋权有向图或者无向图的单源最短路径问题,算法最终得到一个最短路径树。该算法常用于路由算法或者作为其他 阅读全文
摘要:
比赛前一天晚上,检查了一遍身份证和考场信息,(这里有一个惨痛的教训:大概是csp二轮,早上起来找不到身份证了,心急如焚,晚了半个小时才出门,还好没迟到,不过二轮分数不太理想……)打开洛谷再看了看一些算法的板子(背包、最短路什么的),然后找了noip2016的一道题做 P2827 蚯蚓 也没过,看时间 阅读全文
摘要:
1.关于set C++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构操作。vector封装数组,list封装了链表,map和set封装了二叉树等,在封装这些数据结构的时 阅读全文
摘要:
主席树的定义与作用 主席树,也称可持久化线段树(主席树为什么叫主席树?据说因为它是一个名字缩写为 $HJT$ 的神犇发明的,与当时主席的名字缩写一样......) 什么是可持久化线段树呢,即为一颗记录了所有更新过程的线段树。能够处理出从第 $i$ 次更新到第 $j$ 次更新的线段树变化。 前置知识 阅读全文
摘要:
在二叉树中,有两组非常重要的性质。第一种是“堆性质”,即每个节点的值都比他的左右子节点的值更优。第二种就是“BST性质”,就是每个节点的值大于左子树上所有节点的值,小于右子树上所有节点的值。它是二叉查找树以及所有平衡树的基础。 二叉查找树(BST) BST的建立 为了避免越界,一般在BST中先插入一 阅读全文
摘要:
~~已经快被这玩意搞疯了~~ $\mathcal O(n^3)$ 做法 解析:$f[i][j]$ 表示以 $b[j]$ 结尾,字符串 $a[i]$ 之前的公共上升子序列最大长度; 显然:$f[i−1][j] \leq f[i][j]$ 递推: $a[i]!=b[j]$:$f[i][j] = f[i− 阅读全文
摘要:
最长公共子序列 给定两个长度分别为 $n,m$ 的序列 试求出最长的公共子序列。 $\mathcal O(n^2)$ 做法 我们考虑进行动态规划 设 $f[i][j]$ 表示看完 $a$ 数组的前 $i$ 位,$b$ 数组的前 $j$ 位的最长公共子序列的长度 那么我们最终的答案就是 $f[n][m 阅读全文
摘要:
最长上升子序列 1、$n^2$ 做法 首先我们要知道,对于每一个元素来说,最长上升子序列就是其本身。那我们便可以维护一个 $dp$ 数组,使得 $dp[i]$ 表示以第 $i$ 元素为结尾的最长上升子序列长度,那么对于每一个 $dp[i]$ 而言,初始值即为 1; 那么 $dp$ 数组怎么求呢?我们 阅读全文