
知识点
文章平均质量分 84
flora715_hss
纸飞机,载着岁月飞散在风里.
所有羁绊都归于平淡,誓言悉数服从命运的安排.
——时间划过风的轨迹,那个少年,还在等你.
展开
-
【浮*光】 #noip总复习# hss_2018noip_rp++
广搜复习题 https://www.luogu.org/problemnew/show/P2324√ 线段树复习题 https://www.luogu.org/problemnew/show/P4041√ 最短路+dp复习题 https://www.luogu.org/problemnew/show/P1772√ 并查集复习题 https://www.luogu.org/problem...原创 2018-11-09 09:40:35 · 1069 阅读 · 0 评论 -
【暖*墟】 #图论# 最小生成树
1、最小生成树的概念实际问题:在n个城市中建立一个通信网络,则至少需要布置n-1条通信线路。这个时候我们需要考虑如何在成本最低的情况下建立这个通信网?于是我们就可以引入连通图来解决我们遇到的问题,n个城市就是图上的n个顶点,边表示两个城市的通信线路,每条边上的权重就是我们搭建这条线路所需要的成本,所以现在我们有n个顶点的连通网可以建立不同的n-1条边的生成树。当我们构造这个...原创 2018-09-01 16:35:22 · 396 阅读 · 0 评论 -
【暖*墟】 #四舍五入# C++的setprecision(n)
C++最简单的四舍五入(setprecision(n)方法 ) setprecision(n)是流格式控制符之一,在 iomanip头文件 中。c++默认的流输出包括整数和小数的有效位是6,若超出,则第七位四舍五入到6位数。fixed:浮点值显示为定点十进制。 默认是小数6位数,不包含整数,若小数位超出6位,则四舍五入到6位数。 1. setprecision(n) :...原创 2018-08-25 15:56:49 · 602 阅读 · 0 评论 -
【暖*墟】 #数论# 高次同余方程
高次同余方程题意:求 A^x = B (mod P) 的解,其中A、P互质。【思路分析】因为a、p互质,所以可以在模p意义下执行关于a的乘除法运算。设 t=[√p(下取整)],将 x 转化为:x=i*t-j 。则方程变为:a^(i*t-j)=b (mod p),即 (a^t)^i=b*(a^j) (mod p) 。所以,对于所有的 j 属于[0,t-1],把 b*(...原创 2018-09-04 10:08:16 · 219 阅读 · 0 评论 -
【暖*墟】 #STL函数库# 各种竞赛常用STL容器
什么是 STL?STL(Standard Template Library)是 C++ 标准模板库,里面提供了大量模板。 vector (不定长数组)加载库:include < vector > 申明:vector < type > name (从0开始)#include<vector>vector<int> a; //相当于...原创 2018-08-29 14:56:13 · 172 阅读 · 0 评论 -
【暖*墟】 #C/C++相关函数# 字符串的操作函数
C: 定义声明:char st[100];1. 字符串长度 strlen(st); 2. 字符串比较 strcmp(st1,st2); strncmp(st1,st2,n); //把st1,st2的前n个进行比较。 3. 字符串附加 strcat(st1,st2); strncat(st1,st2,n); //n表示...原创 2018-08-31 16:42:47 · 190 阅读 · 0 评论 -
【暖*墟】 #数据结构进阶# 树链剖分
一. 树链剖分原理和实现1.树链剖分的概念用途:在一棵树上进行路径的修改、求极值、求和。树链,就是树上的路径。 剖分,就是把路径分类为 重链 和 轻链 。 树链剖分就是把一些点合成一条路径,使其在线段树中的下标有序,用线段树来维护。 这样就可以使得查询、修改的效率大大提高。 假设我们把路径分好链了,每次询问两个点对(x,y)时, 若 x 和 y 在同一链中,直接询问线段树...原创 2018-08-21 15:09:44 · 218 阅读 · 0 评论 -
【暖*墟】 #C++相关设定# 转义字符
所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加"\"来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符。因为后面的字符,都不是它本来的ASCII字符意思了。所以,如果有关字符“\”的时候,通常用“\\”表示。如【洛谷 p2243】电路维修 的代码:#include<iostream>#inc...原创 2018-08-31 15:26:00 · 208 阅读 · 0 评论 -
【暖*墟】 #BFS# 广搜技巧与优化
BFS 广度优先搜索(队列)目录一. 基本实现二. 双端队列普通队列用于边权为定值的最短路搜索。 双端队列可以进行边权为1/0的最短路搜索。【例题】洛谷 p2243 电路维修三. Hash判重1、哈希表的特征 2、哈希表的实现方法:拉链法3、Hash的应用4、散列法【Hash表的常见构造方法】【例题】洛谷 p2730 魔板一....原创 2018-08-31 14:48:31 · 883 阅读 · 0 评论 -
【暖*墟】 #STL函数库# map和set的函数用法
set:集合中的对象不按特定的方式排序,并且没有重复对象。 用法:存放的是对象的引用,没有重复对象。 map:一种把键和值映射的集合,它的每一个元素都包含一对键和值。 特征:map中的元素是自动按key(键值)升序排序。 用法:从Map集合中检索元素时,只要给出键对象,就会返回对应的值对象。 目录 1.count函数总结 ***注意,count寻找的是...原创 2018-08-28 09:24:45 · 168 阅读 · 0 评论 -
【暖*墟】 #数据结构进阶# 主席树超详细解释
主席树【可持久化线段树/函数式线段树/n棵线段树】 目录一. 概念理解1.求所有数字中的第k大数?2.求任意一段区间 [ L , r ]中的第k大数?3.会不会空间超限?超级详细的实现过程分析【戳我戳我qwq】二. 例题演练1 【主席树】第K小的数Ⅰ(caioj1441)2 【主席树】第K小的数Ⅱ(caioj1442)3 【主席树】第K小的数...原创 2018-08-23 17:29:39 · 377 阅读 · 0 评论 -
【暖*墟】 #初级数据结构# 倍增求LCA && LCA的Tarjan算法
一. 知识引入LCA即最近公共祖先,即有根树中x,y的公共祖先中深度最大的一个节点。求最近公共祖先的方法:暴力法,向上标记法,树上倍增法,Tarjan算法。【“暴力”法】先 dfs求出对应点的 dep(深度),深度大的向上跳到与深度小的同一深度,比较是否相同,不相同的话,两者一起往上跳。【向上标记法】O(N)从x点向上走到根节点,标记所有经过的节点。从y点向上走...原创 2018-08-20 17:31:38 · 205 阅读 · 0 评论 -
【暖*墟】 #初级数据结构# 分块
分块的概念与运用【例题1】单点修改+区间查询【例题2】区间修改+单点查询【例题3】区间修改+区间查询【例题4】bzoj 2724 蒲公英【例题5】bzoj 2038 小Z的袜子分块的概念与运用通过适当的划分,预处理一部分信息并保存下来。用空间换取时间,达到时空平衡。易实现。【例题1】单点修改+区间查询SOLUTION1将查询区间分成中间整块+零散...原创 2018-08-20 16:39:47 · 354 阅读 · 0 评论 -
【缄*默】 #DP# 各种DP的实现方法(更新ing)
DP =「状态」+「阶段」+「决策」基本原理 = 「有向无环图」+「最优子结构」+「无后效性」 目录一. 线性DP{ 1.概念引入 }{ 2.例题详解 }【例题1】caioj 1064 最长上升子序列【例题2】caioj 1068 最长公共子序列【例题3】洛谷 p1216 数字三角形【例题4】poj 2279 Picture Permutations【例...原创 2018-08-23 11:23:26 · 1399 阅读 · 0 评论 -
【浮*光】 #线段树# bzoj 1798 维护序列
【bzoj 1798】【luogu p3373】线段树模板题序列a1,a2,…,aN。有如下三种操作形式: (1)把数列中的一段数全部乘一个值; (2)把数列中的一段数全部加一个值; (3)询问数列中的一段数的和。 由于答案可能很大,你只需输出这个数模P的值。【分析】线段树,维护两个标记,加为 tmp_1,乘为 tmp_2。加x的操作变为:乘1+x ; 乘c的操作变为:乘c+0 ...原创 2018-08-20 14:55:56 · 149 阅读 · 0 评论 -
【暖*墟】 #初级数据结构# 线段树
【概念引入】用途:单点修改,区间查询 && 区间修改,单点查询 && 区间修改,区间查询 。线段树是二叉树,每个节点对应的是序列的一段区间。根节点对应整个区间。每个节点对应区间为 [ l , r ]。l=r时,是叶节点,没有左右儿子;否则有两个儿子,令mid=(l+r) / 2,则左儿子对应区间为 [ l , mid ],右儿子 [ mid+1 ...原创 2018-08-20 11:01:43 · 154 阅读 · 0 评论 -
【暖*墟】 #数据结构进阶# 点分治
【例题1】poj 1741 Treen个点的树,每条边都有一个权值。 两点路径长度就是路径上各边权值之和。 求长度不超过K的路径有几条。【分析】本题中树的边是无向的,即是一个n个点,n-1条边构成的无向图。这种树可以看成无根树,可以指定节点p为根。对p而言,树上路径可以分为两类:经过根节点p; 包含于p的某一棵子树中。设点 i 的深度为 Depth[i],父亲为 ...原创 2018-08-22 16:18:39 · 204 阅读 · 0 评论 -
【暖*墟】 #洛谷提高网课# 8.1初级数据结构(1)
链表 当平时使用数组时,有时会遇到一些问题:在删除一个数据时,为了保证数据的连续性, 需要将删除点右边的数据、全部往左移一格。 在插入一个数据时,为了保证数据的连续性, 需要将插入点右边的数据、全部往右移一格。 每次移动的时间复杂度为O(N),如果元素较多时会时间超限。 链表一个位置包括了自己位置上的值和下一个值所在的位置。这样链表就可以实现O(1)的插入/删除,同时保...原创 2018-08-01 14:31:28 · 602 阅读 · 0 评论 -
【暖*墟】 #动态规划# 数位DP方法总结
数位DP是一种计数用的dp,一般是要统计一个区间[le,ri]内满足一些条件数的个数。一般问题:求出在给定区间 [ A , B ] 内,符合条件 P ( i ) 的数 i 的个数。条件 P ( i ) 一般与数的大小无关,而与 数的组成 有关。即:给定一些限制条件,求满足限制条件的第K小的数是多少。利用数位的性质,设计log级别复杂度的算法。最基本的思想是”逐位确定“,...原创 2018-09-04 15:29:58 · 482 阅读 · 0 评论 -
【暖*墟】#优化# 读入优化和输出优化
1. 读入优化最易懂的读入优化(正负整数)void read(int &x){ //'&'表示引用,在函数中改变了x的值就意味着在外面x的值也会被改变 int f=1; //标记正负 x=0; //归零 char s=getchar(); //读入第一个字符 while(s<'0'||s>'9'){ //不是数字字符 ...原创 2018-08-30 08:41:40 · 256 阅读 · 0 评论 -
【暖*墟】 #数据结构# 分块入门训练题1~9
引入 foreword数列分块就是把数列中【每m个元素打包起来】,达到优化算法的目的。把每m个元素分为一块,共有n/m块,区间修改涉及O(n/m)个整块,以及两侧两个不完整的块。每次操作对每个整块直接标记,而由于不完整的块的元素比较少,暴力修改元素的值。每次询问时返回元素的值加上其所在块的加法标记。每次操作的复杂度是O(n/m)+O(m)。根据均值不等式,当m取√n时总复杂度...原创 2018-10-20 16:55:08 · 815 阅读 · 1 评论 -
【暖*墟】 #图论# 强连通分量与缩点(tarjan)
tarjan求有向图强连通分量(scc) 【一. 常见概念理解】【二. 常见数组及其使用】【三. tarjan算法的实现过程】【四. 常见例题分析】【一. 常见概念理解】强连通分量:任意两个节点相互可达的强连通图中最大的一个。 tarjan:一个类似dfs的过程,用于寻找有向图中的强连通分量。 缩点:对于具有传导性的关系,把有向图中的"环"缩成点,形成有向...原创 2018-10-22 13:31:51 · 353 阅读 · 0 评论 -
【暖*墟】 #图论# 二分图匹配
一、二分图的匹配对于一个二分图G的子图M,若M的边集E的任意两条边都不连接同一个顶点,则称M为G的一个匹配。即:“任意两条边没有公共端点”的边的集合。二、最大匹配对于二分图G的一个子图M,若M为其边数最多的子图,则M为G的最大匹配。增广路:也称增广轨或交错轨。若P是图G中【一条连通两个未匹配顶点的(长)路径】,属于M的边和不属于M的边(已匹配和待匹配的边)在P上交替出现(一...原创 2018-10-11 09:22:04 · 237 阅读 · 0 评论 -
【暖*墟】 #图论# 二分图判定
二分图判断二分图:顶点可以分成两个不相交的集合U和V,使得同一集合内的顶点不相邻的图。无向图为二分图的充分必要条件:G至少有两个顶点,且其所有回路的长度均为偶数。判断某个图是否是二分图可以用着色问题解决。我们从图中任选一个顶点s,并把它着为红色,接着s的邻居必须着为蓝色,然后s邻居的邻居再次作为红色,这样一层一层着色,直到整个图被着色为止;如果在着色过程中产生了冲突,即...转载 2018-10-10 19:05:52 · 397 阅读 · 0 评论 -
【暖*墟】关于{ 高精度 }的专题
#include <cstdio>#include <cstring>#include <algorithm> using namespace std; const int power = 1; //每次运算的位数为10的power次方,在这里定义为了方便程序实现const int base = 10; //10的pow...转载 2018-05-29 15:38:36 · 264 阅读 · 0 评论 -
【暖*墟】 #数论# 矩阵乘法与高斯消元
【矩阵乘法与高斯消元】 目录1.高斯消元的概念方法【具体过程模拟】【具体代码实现】 2.矩阵与矩阵乘法 【例题2】洛谷 p3390 矩阵快速幂 【例题3】poj 3318 随机化算法 【例题4】hdu 2157 How many ways 【例题5】洛谷 p1349 广义斐波拉契数列一. 概念引入1.高斯消元的概念方法根据数学知识可...原创 2018-09-07 17:28:29 · 670 阅读 · 1 评论 -
【暖*墟】 #数论# 组合数学知识点总结
组合数学知识点总结 二项式定理 Lucas定理(卢卡斯定理)前提:p为质数。 ...原创 2018-09-10 19:16:28 · 389 阅读 · 0 评论 -
【暖*墟】 #动态规划# 斜率优化DP方法总结
斜率优化DP方法总结 目录 { 一. 概念入门 } 【洛谷p2365】任务安排1 【poj1180****】任务安排2【大数据】【实现】“及时排除无用决策”的思想 【bzoj2726**】任务安排3【大数据】【负数】 【拓展********】任务安排4【多重负数】...原创 2018-09-06 18:05:49 · 377 阅读 · 0 评论 -
【缄*默】 #图论# 图论知识点全面总结
一. 图的储存结构【1.1 邻接矩阵】图的邻接矩阵存储方式是用两个数组来表示图。一个一维数组存储顶点信息,一个二维数组(邻接矩阵)存储边的信息。设图G有n个顶点,则邻接矩阵是一个n*n的方阵,定义为: 看一个实例,下图左就是一个无向图。 从上面可以看出,无向图的边数组是一个对称矩阵。所谓对称矩阵就是n阶矩阵的元满足a...原创 2018-09-15 17:12:00 · 671 阅读 · 0 评论 -
【暖*墟】 #数论# 乘法逆元
看到了一种很神奇的乘法逆元求法qwqvoid exgcd(ll a,int b){ //求a%b条件下的乘法逆元 if(b==0){ x=1; y=0; return; } exgcd(b,a%b); x^=y^=x^=y; y-=a/b*x;}用的是扩展欧几里得,代码超级简单== 然后又看到了一种更简单的..0v0//求1~maxone的乘法逆元...原创 2018-09-03 20:07:27 · 169 阅读 · 0 评论 -
【缄*默】 #数论专题# 数论知识点全面总结(更新ing)
数论中最重要的函数:欧拉函数和莫比乌斯函数。目录【一. 整除与约数】1.整除的基本概念2.取整除法(1)取整除法的概念和应用(2)取整除法求和3.因子和约数(1)基础概念(2)求N的正约数集合——试除法(3)试除法的推论(4)求1~N每个数的正约数集合——倍数法(5)倍数法的推论【例题】洛谷 p1403 约数研究【例题】 bzoj 1053 ...原创 2018-08-21 17:29:40 · 1270 阅读 · 0 评论 -
【浮*光】 #状压DP# NOI2001&洛谷p2704 炮兵阵地
【NOI2001&洛谷p2704】炮兵阵地一个N*M的地图,每一格可能是山地(用“H” 表示),也可能是平原(用“P”表示)。 在每一格平原地形上最多可以布置一支炮兵部队(山地上不能够部署炮兵部队)。 每个部队能够攻击到的区域:沿横向左右各两格,沿纵向上下各两格。 两支炮兵部队之间不能互相攻击,即任何炮兵部队都不在其他部队的攻击范围内。 在整个地图区域内最多能够摆放多少我军的炮...原创 2018-09-05 19:04:42 · 161 阅读 · 0 评论 -
【暖*墟】 #动态规划# 状态压缩DP方法总结
状压DP通常把一类以一个集合内的元素信息作为状态、且状态总数为指数级别的动态规划成为状态压缩DP。通常具有以下两个特点:数据规模的某一维或几维非常小(<25)。 具备DP的基本性质:最优子结构+无后效性。具体解题模式:【找状态】确定每行的M位二进制数中0、1的表示。 【存已知】存入时把初始每行的二进制状态变为一个十进制的数,便于数位操作。 【预处理】结合输入求...原创 2018-09-05 18:44:12 · 332 阅读 · 0 评论 -
【暖*墟】 #动态规划# 四边形不等式
如果对于任意的a1≤a2<b1≤b2,有m[a1,b1]+m[a2,b2]≤m[a1,b2]+m[a2,b1],那么m[i,j]满足四边形不等式。原创 2018-09-08 16:40:39 · 229 阅读 · 0 评论 -
【暖*墟】 #快速幂# 快速幂的实现与运用
快速幂引入while(b > 0){ if(b & 1) ans *= base;/*询问此时b(二进制)的最后一位是 1 吗? 是的。这代表 a^{11} = a^8 × a^2 × a^1 中的“ × a^1 ”存在。所以 ans∗=base。注意,base的值是会流动的。 *//*关于 b & 1:“按位与”。x...原创 2018-09-03 07:50:47 · 160 阅读 · 0 评论 -
【暖*墟】 #洛谷省选网课# 8.1数论进阶
目录 一. 整除 取整除法 二. 因子 唯一分解定理 三. 同余系与剩余系1.同余的概念和性质2.剩余系与剩余定理3.裴蜀定理4.乘法逆元5.1 费马小定理与欧拉定理5.2 欧拉函数5.3 积性函数的性质和应用 四. 质数 五. 公约数 1.欧几里得算法...原创 2018-08-01 10:13:22 · 776 阅读 · 0 评论 -
【暖*墟】 #洛谷提高网课# 7.31搜索ex
目录剪枝(可行性&最优性)双向搜索迭代加深A*算法求k优解2SATp.s. 讲义中还有一堆例题。( 原谅我真的不太想听巨佬飞跃式讲课...)剪枝(可行性&最优性)对于可行性剪枝,要求我们“看的越远”,剪枝的效果更好。所谓看得更远,就是我们能够通过现在的情况,预见到若干步之后能否依然可能。举个例子来说,比如说走棋盘问题,可行性剪枝怎么剪呢?...原创 2018-07-31 19:49:33 · 577 阅读 · 0 评论 -
【暖*墟】 #链表# 邻值查找 + 动态中位数离线做法
目录链表的特征// struct储存建立// 建新链表,初始时将head、tail相连// 在p后插入包含数据val的新节点// 删除元素p// 链表内存回收// 数组模拟链表清空【例题】邻值查找【例题】动态中位数的离线做法 poj3784链表的特征支持在任意位置插入或删除,但只能按顺序访问其中的元素。常用于“倒序处理”,因为链表容易执行“删除”操作...原创 2018-07-18 13:29:26 · 410 阅读 · 0 评论 -
【暖*墟】 #队列# 单调队列:子段最大值 + 最大子序和
STL 中队列的使用(queue)一.基本操作:push(x) 将x压入队列的末端 //不能push_backpop() 弹出队列的第一个元素(队顶元素),注意此函数并不返回任何值front() 返回第一个元素(队顶元素)back() 返回最后被压入的元素(队尾元素)empty() 当队列为空时,返回truesize() 返回队列的长度头文件:#include &...转载 2018-07-18 10:21:19 · 377 阅读 · 0 评论 -
【暖*墟】#简单倍增# 区间最值的ST算法
【简概】ST 算法在 RMQ(区间最值)中用来求得一个区间的最值,但却不能维护最值。也就是说,过程中不能改变区间中的某个元素的值。(不能修改,快速查询)O(nlogn) 的预处理和 O(1) 的查询对于需要大量询问的场景是非常适用的。比如有如下长度为 10 的数组 :1 3 2 4 9 5 6 7 8 0 我们要查询 [1, 7] 之间的最大值,如果采用朴素的线性查找,复...原创 2018-07-11 12:05:18 · 311 阅读 · 2 评论