模板
小杨_小杨
别浪费现在喔
展开
-
二分
一.什么是二分搜索?在有界并有序的解空间内不断缩减可能存在的范围,从而得到问题最优解的答案。只有有界闭区间才能保证缩减次数是有限的,同时也只有存在单调性才能够保证二分的使用是正确的,保证去掉的值是不合法或者不是最优解。二.二分搜索的实现求最有解可以转换成求满足某个条件C(x)的最大(/最小)的xconst double eps = 1e-6;bool C(typedef x){ //判断x是否满足……条件,并返回结果 /* ……*/ }//整数二分 int bsearch(int l原创 2021-03-31 18:26:25 · 145 阅读 · 0 评论 -
洛谷P1331--海战
洛谷P1331–海战bfs模板题一.题意题目的要求是找到图中有多少个矩形并输出其数量,假如有一个不是矩形就输出Bad placement.二.分析既然是要求矩形的数量,可以利用bfs去搜索图,然后利用面积来判断是否是矩形:(行最大值减行最小值 + 1) * (列最大值减列最小值 + 1)== 当前联通的‘#’的数量三.代码#include <bits/stdc++.h>using namespace std;const int maxn = 1e3 + 10;char原创 2020-10-15 11:22:57 · 682 阅读 · 0 评论 -
欧拉函数
欧拉函数一.什么是欧拉函数欧拉函数就是指:对于一个正整数n,小于或等于n的正整数中与n互质的正整数个数(包括1)的个数,记作 φ ( n )所以其通式为: φ ( n ) = n * (1 - 1/p1) * (1 - 1/p2) * …… * (1 - 1/pn),其中p1,p2……pn为n的所有质因数,例如:φ ( 10 ) 的质因数为2,5,所有φ ( 10 ) = 10 * (1 - 1/2) * (1 - 1/5) = 4(1,3,7,9这四个数)同时φ ( 1 ) = 1;二.欧拉函数原创 2020-09-22 22:15:34 · 5254 阅读 · 1 评论 -
树状数组
树状数组树状数组利用二进制,删掉线段树中不需要的点,再把剩下的节点对应到数组中。一.时间复杂度与树状数组的优劣树状数组的查询与修改时间复杂度都是O(logn),且它的常数系数比线段树小,代码量也比线段树少得多。树状数组能解决的问题,线段树都能解决,但是线段树能解决的问题,树状数组却不一定能解决,其功能比线段树要差一些。二.树桩数组的实现过程蓝色代表区间覆盖长度,橙色代表初始数组数值,tree[4] = a[1] + a[2] + a[3] + a[4],tree[1] = a[1];1.取出原创 2020-08-19 12:01:43 · 128 阅读 · 0 评论 -
利用线段树解决RMQ问题
线段树 – 支持动态查询区间最值问题一.时间复杂度与适用场景线段树是用O(n)的时间建树,然后每一次查询都是O(logn)的时间复杂度,所以他更适合n大m小的RMQ问题(数值多,但是查询次数少)同时线段树支持修改节点上的值,是允许动态查询的一种方法。二.线段树的具体实现过程1.建树 – build线段树的建树操作实际上就是叶子节点 = 初始的值,然后从下到上分别取左右儿子中最小的那个的值来更新树节点的值就好了。黄色代表树的节点,黑色是该节点的值,蓝色的长度代表覆盖区间,例如tree[4] =原创 2020-08-19 11:07:32 · 331 阅读 · 0 评论 -
利用ST表解决RMQ问题
ST表 – 查询静态区间最值问题一.与线段树比的优缺点线段树可以O(n)的时间建树,O(logn)的时间复杂度情况下查询区间最值,但是ST表可以在O(nlogn)的时间打表,O(1)的时间复杂度下静态查询区间最值。当查询次数多且静态查询的情况下,选择ST表来做区间最值查询更合适。二.ST表的具体实现过程1.预处理预处理也是一个利用动态规划打表的过程。①定状态:a[ i ] : 初始数组;f[ i ][ j ] :第 i 个数起连续的 2j 个数中的最大值;②初始化:f[ i ][ 0 ] =原创 2020-08-18 00:00:07 · 131 阅读 · 0 评论 -
快速幂运算
快速幂的运算一.为什么需要快速幂在我们求幂运算的时候,一般的朴素算法也就是o(n)的时间复杂度//o(n)的时间复杂度来求幂运算for(int i = 1; i < n; i++){ ans = ans * x;}但是,在我们求的幂方很大的时候就会浪费时间,这个时候就需要用到我们的快速幂,一种o(logn)的算法。二.快速幂的实现原理快速幂是如何实现的呢?我们可以利用我们的二进制,来把我们的幂方化成如下形式例如:x4 = (x2)2进而推导出xn = (x2)……的形式这原创 2020-06-03 19:20:45 · 306 阅读 · 0 评论