随笔分类 -  学术

摘要:积性函数与完全积性函数 积性函数 若一个数论函数$f$满足当$gcd(n,m)=1$时,\(f(nm)=f(n)f(m)\) 则称$f$为积性函数 一些常见的积性函数 完全积性函数 若一个积性函数函数$f$满足当$gcd(n,m)\ne1$时,也有$f(nm)=f(n)f(m)$ 则称$f$为完全积 阅读全文
posted @ 2020-08-06 21:33 hulean 阅读(230) 评论(0) 推荐(0)
摘要:欧拉函数的简介与性质 欧拉函数是少于或等于$n$的数中与$n$互质的数的数目。 欧拉函数的性质:它在整数$n$上的值等于对n进行素因子分解后,所有的素数幂上的欧拉函数之积。 欧拉函数的值 通式:\(\varphi(x)=x(1-\frac{1}{p_1})(1-\frac{1}{p_2})(1-\f 阅读全文
posted @ 2020-08-02 13:38 hulean 阅读(458) 评论(0) 推荐(0)
摘要:尝试拿一道例题(玩具装箱)来讲明白斜率优化。 1) 题目大意 有$n$个物品,每个物品有一个体积$c_i$,你可以制作无限个箱子,假设你制作的箱子长度为$x$,那么你所需花费的费用就是$(x-L)^2$,现在要求出把$n$个物品都放入箱子里的最小费用。 2) 普通DP 由题意我们很快就可以得出一个D 阅读全文
posted @ 2020-07-23 15:13 hulean 阅读(305) 评论(0) 推荐(0)
摘要:先放一道例题[USACO15DEC]Max Flow P 题目大意 给你一棵$n$个点的树,有$k$条管道,每条管道有个起始点和终结点。从起始点到终结点的路径上每个经过的点权值都要$+1$ 现在问你这$k$条管道都处理完后权值最大的点的权值是多少 \(N\le50000\) \(K\le100000 阅读全文
posted @ 2020-07-22 14:37 hulean 阅读(156) 评论(0) 推荐(0)
摘要:悬线法 用途 解决给定矩阵中满足条件的最大子矩阵 做法 用一条线(横竖貌似都行)左右移动直到不满足约束条件或者到达边界 定义 $left[i][j]$:代表从$(i,j)$能到达的 最左位置 $right[i][j]$:代表从$(i,j)$能到达的 最右位置 $up[i][j]$:代表从$(i,j) 阅读全文
posted @ 2019-11-23 21:47 hulean 阅读(214) 评论(0) 推荐(0)
摘要:割点的概念 在无向连通图中,如果将其中一个点以及所有连接该点的边去掉,图就不再连通,那么这个点就叫做割点(cut vertex / articulation point)。 例如,在下图中,0、3是割点,因为将0和3中任意一个去掉之后,图就不再连通。如果去掉0,则图被分成1、2和3、4两个连通分量; 阅读全文
posted @ 2019-11-23 21:40 hulean 阅读(334) 评论(0) 推荐(0)
摘要:概念 首先是最近公共祖先的概念(什么是最近公共祖先?): 在一棵没有环的树上,每个节点肯定有其父亲节点和祖先节点,而最近公共祖先,就是两个节点在这棵树上深度最大的公共的祖先节点。 换句话说,就是两个点在这棵树上距离最近的公共祖先节点。 所以LCA主要是用来处理当两个点仅有唯一一条确定的最短路径时的路 阅读全文
posted @ 2019-07-06 20:36 hulean 阅读(34189) 评论(4) 推荐(49)
摘要:名词解释 ·(点的)度:对于无向图,和某个点相连的边条数 ·入度:对于有向图,终点是该点的边条数 ·出度:对于有向图,起点是该点的边条数 ·(两点间)路径:从起点点依次沿着边移动到下一个点,直到终点所经过的点和/或边若未有向图要求只能从边的起点移动到边的终点 ·圈:从一个点出发到自己的路径,常常被称 阅读全文
posted @ 2019-07-02 20:39 hulean 阅读(456) 评论(0) 推荐(0)
摘要:若图片出问题请转至 "[这儿]" 前置技能: "tarjan求强连通分量" 缩点 。 顾名思义,就是在图论算法中将一些点缩成一个点的一种算法。 应用 貌似明白了,但是这有什么用呢? 我们经常求最短路,但是如果我们要求最长路呢? 标准问法: 给你一张有向图,每个点都有一个点权(不是边权了哦),且每一个 阅读全文
posted @ 2019-07-02 20:37 hulean 阅读(4431) 评论(0) 推荐(3)
摘要:一、tarjan求强连通分量 1. 什么是强连通分量? 引用来自度娘的一句话: “有向图强连通分量:在有向图G中,如果两个顶点vi,vj间(vi vj)有一条从vi到vj的有向路径,同时还有一条从vj到vi的有向路径,则称两个顶点强连通(strongly connected)。 如果有向图G的每两个 阅读全文
posted @ 2019-05-13 12:55 hulean 阅读(632) 评论(0) 推荐(0)
摘要:一般问题模型: 在一张图上,有k次机会可以通过一条边而不需要计算权值或权值是一个特殊值,求从起点到终点的最短路。 变形问法: 在一张图上,有k次机会可以逆向行驶,求从起点到终点的最短路或最短路。 这种问题可以用两种方式解决。 第一种思想:动态规划(这里不详细解析,主要是介绍分层图) 第二种思想:分层 阅读全文
posted @ 2019-05-10 14:15 hulean 阅读(2129) 评论(0) 推荐(1)
摘要:我们讲一下什么是 二维前缀和 ,建立在 一维前缀和 之上,我们要求一个矩阵内一个任意的子矩阵的数的和,我们就可以用二维前缀和,我们还是用DP来预处理,状态和一维前缀和差不多,只不过我们多加了一维, 表示 这个点与 这个点两个点分别为左上角和右下角所组成的矩阵内的数的和,好好想一下状态转移方程, ,怎 阅读全文
posted @ 2019-05-07 12:46 hulean 阅读(8084) 评论(1) 推荐(11)
摘要:素数简介 素数(prime number)又称质数,有无限个。 素数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。 接下来介绍几种判断素数的方法: 问法1:给定一个数n,判断n是不是素数 一、暴力枚举 枚举 分别当做除数,判断是否能整除,如果某个数能把 整除,那么就说明 不是素数,如果 阅读全文
posted @ 2019-05-01 10:20 hulean 阅读(313) 评论(0) 推荐(0)
摘要:```cpp 什么是高精度数? 在一般的科学计算中,会经常算到小数点后几百位或者更多,当然也可能是几千亿几百亿的大数字。一般这类数字我们统称为高精度数,高精度算法是用计算机对于超大数据的一种模拟加,减,乘,除,乘方,阶乘,开放等运算。 对于一个很大的数字N >= 10^ 100, 很显然这样的数字无法在计算机中正常存储。于是, 我们想到了办法,将这个数字拆开,拆成一位一位的 或者是四位四位的存储到... 阅读全文
posted @ 2019-05-01 10:19 hulean 阅读(6323) 评论(0) 推荐(7)
摘要:``` include 1.isalnum() 检查字符c是十进制数还是大写还是小写字母。如果是,则返回true;如果不是,则返回false。 2.isalpha() 检查字符c是否是字母。如果是,则返回true;如果不是,则返回false。 3.isblank() 检查字符c是否为空白字符。空白字 阅读全文
posted @ 2019-05-01 10:19 hulean 阅读(1832) 评论(3) 推荐(0)