自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 随机函数

文章目录随机函数1.随机数生成1.1 rand()1.2 mt199371.3 基于硬件的均匀分布随机数生成器random_device2.随机排列2.1 random_shuffle2.2 shuffle3.实现随机数生成器3.1 线性同余法3.2 时滞斐波那契法随机函数1.随机数生成1.1 rand()头文件:#include<cstdlib>使用:用于生成伪随机数,缺点是比较慢。调用 rand() 函数会返回一个 [0,RAND_MAX] 中的随机非负整数,其中 RAND_

2021-03-30 13:27:10 1794

原创 模拟退火

模拟退火1.算法描述1.1 概述简单说,模拟退火是一种随机化算法,用于求函数的极值。当一个问题的方案数量极大(甚至是无穷的)而且不是一个单峰函数时,我们常使用模拟退火求解。它与爬山算法最大的不同是,在寻找到一个局部最优解时,赋予了它一个跳出去的概率,也就有更大的机会能找到全局最优解。在 OI 领域,对应的,每次随机出一个新解,如果这个解更优,则接受它,否则以一个与温度和与最优解的差相关的概率接受它。以下图片来自:https://oi-wiki.org/misc/simulated-anneali

2021-03-30 13:26:33 133

原创 杜教BM

杜教BM文章目录杜教BM1.算法分析2.模板1.算法分析黑科技…输入线性递推的前几项,可以输出第n项2.模板#include <bits/stdc++.h>using namespace std;#define rep(i, a, n) for (int i = a; i < n; i++)#define SZ(x) ((int)(x).size())typedef vector<int> VI;typedef long long ll;const ll

2021-03-30 13:25:56 121 1

原创 【小峰の题单】网络流经典题目

文章目录【小峰の题单】网络流经典题目1.最大流/最小割/二分图匹配P2756 飞行员配对方案问题「伪模板」主席树最小路径覆盖问题教辅的组成[ZJOI2009]狼和羊的故事[SCOI2007]蜥蜴方格取数问题[ICPC-Beijing 2006]狼抓兔子最长不下降子序列问题[国家集训队]happiness文理分科[清华集训2012]最小生成树[SHOI2007]善意的投票 / [JLOI2010]冠军调查[国家集训队]部落战争[TJOI2013]攻击装置[SHOI2010]最小生成树2.费用流负载平衡问题餐

2021-03-30 13:15:57 402

原创 高斯消元

文章目录高斯消元15138 图图20010 [HEOI2013]钙铁锌硒维生素20086 [HNOI2011]XOR和路径20105 [HNOI2013]游走20167 [JSOI2008]球形空间产生器SPHERE20336 [SDOI2010]外星千足虫20394 [SDOI2017]硬币游戏20575 [SDOI2012]走迷宫24629 Driving Out the Piggies24860 Lights高斯消元15138 图图题意: 给定一张n个点m条边的无向图,图中可以存在自环,任何点对

2021-03-29 18:26:14 176

原创 势能线段树

文章目录势能线段树1.算法分析2.典型例题2.1 区间与t取min/询问区间max2.1 区间加 /区间对 取 /区间对 取 /求区间和/求区间最大值/求区间最小值势能线段树1.算法分析本文章目的主要是为了留个区间取max/min的模板,代码参考:https://oi-wiki.org/ds/seg-beats/#hdu5306-gorgeous-sequence2.典型例题2.1 区间与t取min/询问区间maxHDU5306 Gorgeous Sequence题意: 维护一个长度为n(1e

2021-03-23 18:18:16 468

原创 二维线段树

文章目录二维线段树1.算法分析1.1 四叉树写法1.2 树套树写法2.模板2.1 四叉树写法:单点修改,区间询问2.2 树套树写法:单点修改,区间询问3.典型例题二维线段树1.算法分析对于二维的线段树,有2种写法,分别为四叉树写法和树套树写法:1.1 四叉树写法参照一维线段树的写法:每次将区间二分成两个子区间,对应矩阵应对X,Y同时二分,也就是4个子矩阵,即左上、右上、左下,右下四部分,所以要建一颗四叉树,如果当前矩阵为一维时,只需二分成两个子区间。具体写法和一维线段树类似,可以查看代码1.2

2021-03-23 12:47:44 1962

原创 专题十一 网络流

文章目录专题十一 网络流POJ 3436 ACM Computer FactoryPOJ 3281 DiningPOJ 1087 A Plug for UNIXPOJ 2195 Going HomePOJ 2516 Minimum CostPOJ 1459 Power NetworkHDU 4280 Island TransportHDU 4292 FoodHDU 4289 ControlUVA 10480 SabotageHDU 2732 Leapin' LizardsHDU 3338 Kakuro Ex

2021-03-19 19:00:39 114

原创 第二届全国大学生算法设计与编程挑战赛(冬季赛)

第二届全国大学生算法设计与编程挑战赛(冬季赛)文章目录第二届全国大学生算法设计与编程挑战赛(冬季赛)A 塔B 日记E 神仙爱采药F 但更爱字符串I 奇怪的传输机增加了J 奇怪的小鸭子也增加了K 关于哥俩好的数字这件事M 出题人说这道题是一个签到题A 塔签到#include<iostream>using namespace std;int main(){ char c1; int n=26; //设定塔的层数为26 for(int i=1;i<=n;i++){ //对塔每

2021-03-19 09:58:47 860

原创 2019-2020 ICPC Southeastern European Regional Programming Contest (SEERC 2019)

文章目录2019-2020 ICPC Southeastern European Regional Programming Contest (SEERC 2019)B. Level UpD. Cycle String?F. Game on a TreeG. ProjectionI. Absolute GameJ. Graph and Cycles2019-2020 ICPC Southeastern European Regional Programming Contest (SEERC 2019)B.

2021-03-19 09:49:40 442

原创 2019-2020 ACM-ICPC Pacific Northwest Regional Contest (Div. 1)

2019-2020 ACM-ICPC Pacific Northwest Regional Contest (Div. 1)文章目录2019-2020 ACM-ICPC Pacific Northwest Regional Contest (Div. 1)A Radio PrizeB Perfect FlushC Coloring ContentionD Dividing by TwoE Rainbow StringsI Error CorrectionJ Interstellar TravelK.Com

2021-03-18 22:18:38 449

原创 启发式合并

文章目录启发式合并1.算法分析1.1 一般启发式合并1.2 树上启发式合并1.2.1 先走轻边的启发式合并距离1.2.2 set类型2.模板3.典型例题3.1 一般启发式合并3.2 树上启发式合并启发式合并1.算法分析1.1 一般启发式合并启发式合并指的是,对于两个集合x和y合并的操作,每次把元素个数更少的集合合并到元素个数更大的集合内,即:设x为元素更少的集合,那么就把x合并到y内。可以证明,启发式合并的时间复杂度为:O(nlogn)O(nlog_n)O(nlogn​),因为对于每个元素,他所处

2021-03-17 13:13:25 6146 3

原创 Treap

文章目录Treap1.算法分析2.模板3.典型例题Treap1.算法分析2.模板#include <bits/stdc++.h>using namespace std;const int N = 100010, INF = 1e8;int n;struct Node { int l, r; int key, val; // key是存储的值,val是heap分配的值,用来维护heap的性质 int cnt, size; // cn

2021-03-17 11:02:06 59

原创 splay

文章目录splay1.算法分析2.模板3.典型例题splay1.算法分析​ Splay 是一种二叉查找树,它通过不断将某个节点旋转到根节点,使得整棵树仍然满足二叉查找树的性质,并且保持平衡而不至于退化为链。​ 为了使得splay保持平衡,进行旋转操作。旋转需要保证 :整棵 Splay 的中序遍历不变(不能破坏二叉查找树的性质)。受影响的节点维护的信息依然正确有效。root 必须指向旋转后的根节点。splay保证复杂度的操作的核心是:每次操作完一个节点,均将该节点旋转至树根spla

2021-03-17 11:01:30 150

原创 珂朵莉树

珂朵莉树1. 算法分析玄学原理    用一个三元组(l, r, val)记录一个区间,set来存储。每次区间赋值操作可以把一段区间[l, r]快速赋值为一个值,把[l, r]这段区间内的所有子区间合并为一个区间{l, r, x}。由于数据随机,[l, r]的期望长度为$ \frac{ 1 }{ 3 } (r - l + 1),即每次赋值操作会使得set的区间个数变为原来的,即每次赋值操作会使得set的区间个数变为原来的,即每次赋值操作会使得set的区间个数变为原来的 \frac{ 2 }{ 3 } $

2021-03-17 10:59:44 107

原创 链式前向星

文章目录链式前向星1.算法分析2.模板3.典型例题链式前向星1.算法分析本质上是单链表的头插法建表使用数组模拟,假设x与1, 2, 3, 4相连,使用一个链表来存储它们之间的关系,-1作为结尾的标志,h[x]为该链表的头结点,如下图:每次插入一个结点的方法如下:注意: 每插入一个点,这个点会在链表的表头,h[x]h[x]h[x]始终指向表头,−1-1−1是表尾。2.模板初始化memset(h, -1, sizeof h); // 初始化加入结点到头部// idx:用来唯一标识一条

2021-03-17 10:59:10 143

原创 主席树

文章目录主席树1.算法分析2.模板2.1 区间静态第k小2.2 区间动态第k小2.3 树上第k小2.4 魔改2.4.1 区间小于x的最大值2.4.1 区间mex2.4.2 区间互为因子或者倍数的对数2.4.3 主席树+差分3.典型例题3.1 区间静态第k小3.2 区间动态第k小3.3 树上路径第k小主席树1.算法分析​ 主席树借用前缀和+节约空间的思想, 建立n棵权值线段树,对于[l, r]区间的所有数字,就是第r棵权值线段树-第l-1棵权值线段树,然后查询第k小的时候按照权值线段树查询的思路查询。

2021-03-16 16:21:33 203

原创 权值线段树

文章目录权值线段树1.算法分析1.1 特点1.2 技巧2.模板3.典型例题权值线段树1.算法分析1.1 特点维护全局的值域信息,每个节点记录的是该值域的值出现的总次数。使用二分的思想(离散化的时候,需要用到)支持查询全局K小值,全局rank,前驱,后继等。单词操作时间复杂度为O(logn)空间复杂度为O(n)相对于平衡树的优势:代码简单,速度快劣势:值域较大时,我们需要离散化,变成离线数据结构写起来时和普通的线段树基本一样,但是不需要build建树操作。每次插入一个数字x,相当于执

2021-03-14 00:15:15 302

原创 Codeforces Round #616 (Div. 2)

文章目录Codeforces Round #616 (Div. 2)A. Even But Not EvenB. Array SharpeningC. Mind ControlD. Irreducible AnagramsCodeforces Round #616 (Div. 2)A. Even But Not Even#include <bits/stdc++.h>#define int long longusing namespace std;int const MAXN =

2021-03-09 19:03:07 65

原创 ICPC 2019-2020 North-Western Russia Regional Contest

ICPC 2019-2020 North-Western Russia Regional Contest文章目录ICPC 2019-2020 North-Western Russia Regional ContestA - Accurate MovementB - Bad TreapE - EquidistantH - High Load DatabaseI - Ideal PyramidJ - Just the Last DigitM - Managing DifficultiesA - Accura

2021-03-07 20:38:53 327

原创 Codeforces Round #704 (Div. 2)

文章目录Codeforces Round #704 (Div. 2)C. Maximum widthD. Genius's GambitCodeforces Round #704 (Div. 2)C. Maximum width题意: 给定s串和t串,问是否能够从s中选择若干字符构成t串,要求s中选择出来的相邻的位置的最大值最大题解: 预处理出t中每个字符能够属于的左右区间,然后枚举下即可代码:#include <bits/stdc++.h>using namespace std

2021-03-07 20:11:48 100

原创 Codeforces Global Round 13

文章目录Codeforces Global Round 13E. Fib-treeCodeforces Global Round 13E. Fib-tree题意:给你一棵节点为n(1≤n≤2e5)的树你要判断这颗树是否是斐波树满足下列两点之一即为斐波树1:删除一些边,使得这颗树变为两棵斐波树2:只有一个节点斐波树要求节点数量必须是斐波那契值题解: 题解:https://www.cnblogs.com/mollnn/p/14473024.html代码:贴上大佬的代码:https://w

2021-03-07 20:09:00 101

原创 Codeforces Round #620 (Div. 2)

文章目录Codeforces Round #620 (Div. 2)C. Air ConditionerD. Shortest and Longest LISE. 1-Trees and QueriesCodeforces Round #620 (Div. 2)C. Air Conditioner题解: 先对顾客到店的时间进行排序,之后对于每一个顾客判断[Li , Ri] 与 [LI - t ,Ri + t] 是否有交集即可D. Shortest and Longest LIS题意: 先给你一个数

2021-03-07 19:33:59 74

原创 Codeforces Round #619 (Div. 2)

文章目录Codeforces Round #619 (Div. 2)B - Motarack’s BirthdayC - Ayoub's functionE. NanosoftCodeforces Round #619 (Div. 2)B - Motarack’s Birthday题意:题解: 中位数。填完之后使得相邻数字差值的绝对值和最小,那么我就填中位数即可代码:C - Ayoub’s function题意:题解: 组合计数。逆向思考,我先求出所有的分段数目,然后减掉全部为0的分段即可。

2021-03-07 18:58:31 64

原创 专题三十一 树链剖分

文章目录专题三十一 树链剖分HDU 3966POJ 2763 Housewife WindPOJ 3237HYSBZ 2243HYSBZ 1036FZU 2082LightOJ 1348SPOJ QTREE专题三十一 树链剖分HDU 3966题意: 题意:一颗树上,每个点有权值,定义三种操作:1)I操作表示从a到b节点之间的节点都加上一个值2)D操作表示从a到b节点之间的节点的都减去一个权值3)Q操作询问a节点当前的值。题解: 树剖+线段树裸题。代码:#include <bits/s

2021-03-06 00:10:04 251

原创 树链剖分

文章目录树链剖分1.算法分析1.1 重链剖分:1.1.1 定义1.1.2 重链剖分的性质1.1.3 常见应用1.2 长链剖分1.2.1 定义1.2.2 长链剖分性质1.2.3 长链剖分应用2. 板子2.1 重链剖分2.1.1 权在点上2.1.2 权在边上2.2 长链剖分2.2.1 求lca/求每条长链的长度2.2.2 查询一个点的k级祖先2.2.3 O(n)处理可合并的与深度有关的子树信息3. 例题3.1 重链剖分3.2 长链剖分树链剖分1.算法分析dfs1函数:这里要注意根节点不能设为0,否则根节点

2021-03-06 00:09:34 129

原创 Codeforces Round #651 (Div. 2)

文章目录Codeforces Round #651 (Div. 2)A. Maximum GCDB. GCD CompressionC. Number GameD. Odd-Even SubsequenceE. Binary Subsequence RotationCodeforces Round #651 (Div. 2)A. Maximum GCD题意: 给定n,找到1 < a < b <= n,使得gcd(a, b)最大题解: 思维+数学。分析可知,找到的a和b,必然成倍数关

2021-03-05 16:32:21 68

原创 找环

文章目录找环1.算法分析1.1 判断是否存在环1.2 找出所有环上的所有点1.3 类拓扑排序找出与度数有关的点集->退化到度数为2的环1.4 找到以s为源点的最小环1.5 floyd找到有向图/无向图的最小环2.模板2.1 判断是否存在环2.2 找出所有环上的所有点2.3 类拓扑排序找出与度数有关的点集->退化到度数为2的环2.4 找到以s为源点的最小环2.5 floyd找最小环3.典型例题3.1 类拓扑排序找出与度数有关的点集->退化到度数为2的环3.2 找到以s为源点的最小环3.3 f

2021-03-02 16:40:38 886

原创 Codeforces Round #652 (Div. 2)

文章目录Codeforces Round #652 (Div. 2)C. RationalLeeD. TediousLeeE. DeadLeeCodeforces Round #652 (Div. 2)C. RationalLee题意: 给你n个数,有m个朋友,每个朋友要拿其中w[i]个数,每个人获得的贡献是他拿的数的最大值加最小值,如果只有一个数最大值最小值都是它,让你求出所有人能获得的最大贡献是多少?题解: 贪心。我们要尽可能地将大的数字作为小朋友获得的max值,然后如果给每个小朋友的max分配

2021-03-02 15:54:29 71

原创 Codeforces Round #672 (Div. 2)

文章目录Codeforces Round #672 (Div. 2)C1. Pokémon Army (easy version)C2. Pokémon Army (hard version)D. Rescue Nibel!Codeforces Round #672 (Div. 2)C1. Pokémon Army (easy version)题意: 给定n个数字,可以从这n个数字中选择k个,使得res=a1−a2+a3−a4+...+akres = a_1 - a_2 + a_3 - a_4 +..

2021-03-01 20:42:44 75

原创 ICPC Central Russia Regional Contest (CRRC 19)

ICPC Central Russia Regional Contest (CRRC 19)文章目录ICPC Central Russia Regional Contest (CRRC 19)A. Green teaB. Mysterious ResistorsC. EmoticonsD. Power playE. Printed circuit boardF. A word gameG. HourglassH. Men's showdownI. Andrew and PythonJ. Something

2021-03-01 17:16:22 1211 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除