摘要:
一、二分 C++ STL的二分查找函数: binary_search 返回bool值,是否存在。 lower_bound 返回可插入的最小值的迭代器,即返回第一个符合条件的元素位置。(从已排好序的序列a中利用二分搜索,找出ai>=k的ai的最小指针) upper_bound 返回可插入的最大位置的迭 阅读全文
摘要:
带权并查集 【概述】 1、定义:带权并查集即是结点存有权值信息的并查集。 2、适用:当两个元素之间的关系可以量化,并且关系可以合并时,可以使用带权并查集来维护元素之间的关系。 3、权值:带权并查集每个元素的权通常描述其与并查集中祖先的关系,这种关系如何合并,路径压缩时就如何压缩。 4、与并查集的区别 阅读全文
摘要:
稀疏表(Sparse Table表) 解决静态RMQ,区间最值查询问题的数据结构,树状数组(BIT)解决动态前缀和问题的数据结构; 例:https://www.luogu.org/problemnew/show/P3865 原理:把给定区间分成长度是2的幂次的小区间。先预处理出它们中的最小值是多少, 阅读全文
摘要:
分块: 分段预处理答案,在询问时,满足一整个块的,块间暴力;不满足完整一个区域的,块内直接暴力; 莫队: 将询问存储,经过一定的方式排序,减少冗余查询的算法。 例:http://codeforces.com/contest/617/problem/E 题目大意:求给定l和r之间,连续的异或和为k的对 阅读全文
摘要:
一、Floyed-Warshall算法 枚举中间点起点终点,对整个图进行松弛操作,就能得到整个图的多源最短路径; 例:POJ2240 Arbitrage Arbitrage is the use of discrepancies in currency exchange rates to trans 阅读全文
摘要:
一、顺序查找 二、折半查找 三、二叉搜索树BST 四、B树 五、散列表,哈希hash,散列查找 散列函数的设计:1、直接定址法 H(key)= a*key +b; 2、除留余数法 H(key)=key mod p; 通常选取p为小于或等于表长(最好接近m)的最小素数或不包含小于20质因子的合数; 3 阅读全文
摘要:
一、单点更新 hdu1166区间和 #include <iostream> #include <algorithm> #include <cmath> using namespace std; const int maxn=50005; const int maxnnode=1<<19; struc 阅读全文
摘要:
一、DFS简单介绍与举例理解 例:全排列 二、归纳总结: 例: 1954: 2018蓝桥杯培训-搜索专题-day 1 深度优先搜索作业题1 1954: 2018蓝桥杯培训-搜索专题-day 1 深度优先搜索作业题1 题目描述: 标题:方格分割 6x6的方格,沿着格子的边线剪开成两部分。 要求这两部分 阅读全文
摘要:
BFS 例: 1657: 2018蓝桥杯培训-搜索专题-day 2 广度优先搜索作业题2 1657: 2018蓝桥杯培训-搜索专题-day 2 广度优先搜索作业题2 题目描述: 你玩过华容道的游戏吗? 这是个类似的,但更简单的游戏。 看下面 3 x 2 的格子 + + + + | A | * | * 阅读全文
摘要:
枚举 一、解方程 例: 1957: 2018蓝桥杯培训-枚举专题-day 1 解方程作业题1 1957: 2018蓝桥杯培训-枚举专题-day 1 解方程作业题1 题目描述: 由4个不同的数字,组成的一个乘法算式,它们的乘积仍然由这4个数字组成。 比如: 210 x 6 = 1260 8 x 473 阅读全文