自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 C#学习

参考书籍: 《C#入门经典(第七版)》 (美)Christian Nagel Bill Evjen 等著 观前提示:内容并不专业,写文自娱自乐。请擦亮你的狗眼观看因为我自己都不知道哪里是写错的。 Part 1 你看不懂概念的样子像个文盲 .NET 微软的操作平台,功能...大...

2020-01-03 13:38:29

阅读数 11

评论数 0

原创 板子合集,持续更新中...

树上倍增求LCA const int N = 1e5+5; int lca[N][20]; int dep[N]; void dfs(int now,int f,int depth){///初始时dfs(根节点,0,1); lca[now][0] = f; dep[now] =...

2019-07-17 10:06:51

阅读数 101

评论数 0

转载 DP学习一些好的东西(转载)

分类总结: https://blog.csdn.net/qq_1932568757/article/details/82725132 背包问题: 背包九讲 https://wenku.baidu.com/view/29208152192e45361066f57d.html 背包专辑题目 h...

2019-05-29 19:44:18

阅读数 27

评论数 0

原创 Codeforces Round #496 (Div. 3) C D E1 E2 F

Codeforces Round #496 (Div. 3) Problem A 题意: 思路: Problem B 题意: 思路: Problem C 题意: 给出n个数,询问最少删除几个数使得剩下的每一个数总能找到对应的另一个数使得两个数的和是2x2^x2x(x为非负整数)...

2020-01-31 16:05:55

阅读数 54

评论数 0

原创 Codeforces Round #613 (Div. 2) ABCDE

Codeforces Round #613 (Div. 2) Problem A 题意: 给出一个串,L代表-1,R代表+1,现在你只让其中一些数字有效,询文最多有多少种不同结果 思路: LR一起用等于不用,所以只用L或者只用R,最后结果就是L+R+1 #include<bits/stdc...

2020-01-15 14:37:23

阅读数 48

评论数 0

原创 Educational Codeforces Round 72 (Rated for Div. 2) ABCD

Educational Codeforces Round 72 (Rated for Div. 2) 本场链接 Problem A 题意:a点物理,b点智力,c个技能点,技能点加完的情况下,物理大于智力的情况有多少种 思路:我们只需要a和b的相对差值a-b,然后先把c全部加到a上去,每...

2020-01-13 19:49:47

阅读数 12

评论数 0

原创 Codeforces Round #606 (Div. 2, based on Technocup 2020 Elimination Round 4) A B C D E F

>>>这场比赛的链接 Problem A 题意:t组数据,每组给出一个n,询问1~n中各个位上都相同的数的个数,比如1~10有1 2 3 4 5 6 7 8 9这九个数满足,答案是9。 思路:1~9,10~99,100~999,...各自都有9位,所以获取一下最高位的位数,...

2020-01-05 19:01:10

阅读数 22

评论数 0

原创 Codeforces Round #499 (Div. 2) A B C D E F

>>>本场链接 Problem A 题意:给出一个串有n个字符,选择出k个字符,要求总和最小,且a[i]-a[i-1]>=2,存在就输出总和,不存在就输出-1。 思路:首先排序,然后一定是选取当前能取的最小的因为舍弃当前位置去取后面的首先当前不利,对于取下一位更小的也...

2019-12-29 20:59:13

阅读数 17

评论数 0

原创 P3803 【模板】多项式乘法 ——FFT/NTT模板

>>>FFT >>>NTT 要点: ①A(x) = A1(x)+ wnk*A2(x) A(x+n/2) = A1(x)-wnk*A2(x) ②单位圆的两个复数相乘得到的是角度相加后单位圆上对应的复数(模长相乘,极角相加) ③重新转回系数表示,FFT...

2019-12-07 18:05:54

阅读数 10

评论数 0

原创 Python 瞎写

Python不知道学的啥 1.一个list可以存放种类数据 Extend()另一个表所有元素一个个倒进去 Append()末尾加一个元素 Print(list[a:b:c]) 遍历 [起点(闭):终点(开): i+= 几] 2.dictionary {} List[] T...

2019-11-24 23:03:03

阅读数 41

评论数 0

原创 Unity 3D学习 —— Inspector面板

>>>我记的笔记来源于这个网课 这篇文章我记了什么 Inspector面板的一些操作

2019-11-13 10:48:24

阅读数 9

评论数 0

原创 Unity 3D学习 —— material

>>>笔记来源网课 此文讲啥 material(材质) 自己乱写的定义 材质是一种素材,应用于Mesh Renderer这一种组件里,使得这个组件可以让对象看上去有各种颜色 即:对象需要显现颜色的组件->MR需要材质->材质 ...

2019-11-13 10:48:15

阅读数 8

评论数 0

原创 Unity 3D学习 —— Hierarchy面板

>>>我记的笔记来源于这个网课 这篇文章写了什么 Hierachy面板的一些介绍

2019-11-13 10:48:07

阅读数 11

评论数 0

原创 Unity 3D学习 —— Scene面板

>>>我记得笔记来源于这个网课 这篇文章我记了什么 Scene面板内的操作

2019-11-13 10:47:56

阅读数 6

评论数 0

原创 Unity 3D 学习 —— 术语和大体介绍

>>>我做的笔记来自于这个网课 前言 虽然兴致满满的买了本笔记本记笔记,但是无奈边听边记笔记框架太乱,于是决定有空顺便在博客上更新一下笔记,复习顺便方便自己以后手机电脑查询笔记。 这篇文章我记了什么 Unity 3D的基本界面 Unity 3D的学习流程 Unity ...

2019-11-13 10:47:46

阅读数 20

评论数 0

原创 Unity 3D学习 —— camera

>>>笔记来源之网课 此文写啥 camera的介绍 自己乱写的定义 对象中创建,所以是一个对象,能挂组件。

2019-11-13 10:44:55

阅读数 8

评论数 0

原创 Codeforces Round #584 C D

本场链接(contest/1219) Problem C 解题思路 题目大意就是,从串中抓一些数扔到串的末尾,使得这个串中的数排列出来是非递减 比如 1672893,我们把67 89抓出来,剩下1 2 3,把67 89按顺序放到123后面,那么就是123456789 但是 1892673...

2019-11-12 12:11:41

阅读数 7

评论数 0

原创 HDU 3436 Queue-jumpers (无旋treap)

题目传送门(HDU3436) 解题思路 题目的意思是位于一个[1,n]的序列有三种操作,操作一把一个数放到队首,操作二询问某个数现在的位置,操作三询问现在排名为k的数是谁 Part I 口胡 (第一部分可以跳过) 一开始的愚蠢思路是这样的: 用一棵平衡树T1维护进行过top操作的数的序...

2019-11-09 20:26:33

阅读数 12

评论数 0

原创 HDU 1890 Robotic Sort(无旋treap)

题目传送门(HDU1890) 解题思路 题目大意是[1,n]整个区间询问最小的数的位置x,然后[1,x]整段区间翻转,之后最小的数被放到1位置,之后对于[2,n]区间重复同样的操作,每次都让你输出当前区间内最小的数的位置。 单纯的寻找区间最小值,线段树之类的直接实现以下就可以了。 单纯...

2019-11-09 19:35:29

阅读数 7

评论数 0

原创 POJ 2828 Buy Tickets(无旋treap)

题目传送门 解题思路 题目大意是把一个数插到当前数列的某一位后面,问最后这个数列是啥样的 据说还可以用树状数组/线段树做,咱也不想看,咱也不想学。 无旋treap的做法非常的直接,基本上会无旋treap这题也能直接写了,所以直接看代码吧。 代码 #include<cstdio&...

2019-11-09 19:10:28

阅读数 6

评论数 0

原创 P3391 【模板】文艺平衡树 (无旋treap)

题目传送门 解题思路 用可以提取区间的平衡树,对区间整体打标记,先不下放,等到操作涉及这个节点时再下放:交换左右儿子并给左右儿子打标记 我用的是无旋treap 刚开始需要建树,建树模仿笛卡尔树,由于所有元素出栈之后自身的儿子不会再有变化,因此出栈的时候再push_up即可,由于栈维护右链,...

2019-11-09 19:01:11

阅读数 5

评论数 0

原创 POJ 3481 Double Queue(无旋treap/Splay)

题目传送门 解题思路 三种操作,插入一个数,取最大值并删除,取最小值并删除。 应该有挺多方法可以做的。 提供无旋treap和Splay这两种平衡树的数组的做法。 代码 无旋treap版本 #include<cstdio> #include<algorithm>...

2019-11-09 18:52:56

阅读数 8

评论数 0

原创 Splay/伸展树(P3369 P3391 P2042)

什么是splay? 一种平衡二叉树。 什么是平衡二叉树? 需要先了解什么是: 二叉搜索树——简称BST,每个节点最多有两个子节点,左子比当前节点小,右子比当前节点大。 因此对于插入和查找第k小的值,都可以从根递归着进行下去,在到达递归终点之前,不是选择这个节点左儿子就是右儿子,因此,操...

2019-10-28 20:40:39

阅读数 35

评论数 0

原创 线性基学习

>>>大佬写的贼好建议参考 线性基的基本概念: ①引入一下 给出一个数组a[],我们从a中得到一个数组b[], a数组中的任何数都可以由b中一个或者几个数的异或和得到,b就是我们所说的线性基。 ②b数组本身具有什么性质? (1)b数组的数量最多 = 数组a数据最大值的...

2019-10-12 20:50:43

阅读数 17

评论数 0

原创 树链剖分(P3384)

树链剖分的作用 树链剖分用于解决树上区间询问,主要有两种: 给出两点,询问和修改之间的路径, 又或者给出一个点,询问和修改整颗子树的信息。 树链剖分需要配合其他数据结构如线段树等一起使用 说白了,树链剖分只是根据询问提供正确的区间 针对路径给出区间 的 复杂度为O(logN) 针对子...

2019-10-12 19:41:13

阅读数 11

评论数 0

原创 后缀平衡树模板(例题SPOJ - DISUBSTR)

删除操作还没有验证,原本例题是HYSBZ5084,不过网站好像炸了,一直没法提交,目前不知道删除代码正确性,不过插入和维护height都已经验证过 意思就是你可能会被这篇文章演 平衡树用treap写的 什么是后缀平衡树? 利用平衡树动态维护后缀数组。 可以支持的操作为加入一个字符到串末尾...

2019-09-30 20:47:08

阅读数 14

评论数 0

原创 Codeforces Round #587 (Div. 3) ABCD

题目传送门(contest1216) Problem A 变成每两个一a一b #include<bits/stdc++.h> using namespace std; #define ll long long #define for1(i,a,b) for (int i=a...

2019-09-27 20:56:04

阅读数 4

评论数 0

原创 可持久化无旋treap(良心讲解 P3835)

前置技能:无旋treap 什么是可持久化平衡树? 每经过一次操作,当前状态的整棵树就成为一棵全新版本的树,给每个版本编个号,我们可以根据版本号查找这格版本的树中的一些信息,也可以在这个版本上进行修改生成全新版本。 我们需要保留每个版本的所有信息。 可持久化无旋treap的大体思想 由于t...

2019-09-23 21:26:18

阅读数 9

评论数 0

原创 可持久化线段树/主席树 (P3919 + P3834)

建议先了解一下动态开点线段树,可以参考一下我写的这篇 什么是可持久化线段树: 若询问次数为q,维护区间为m 则所需空间为O(q*logm) 通过root[]数组,记录不同版本的根节点编号,我们可以方便的在某个版本上修改和查询 问题1:什么是不同的版本? 我在某个版本的线段树上做了某次修...

2019-09-16 21:22:38

阅读数 12

评论数 0

原创 动态开点线段树(P1908/洛谷1908)

什么是动态开点线段树: 假设操作次数为q,维护区间大小为m 普通的线段树会先把所有可能需要的节点开辟出来 需要的空间为O(4*m) 这样可以: 1.方便的通过节点下标所引导对应的左右儿子节点 2.所有需要的节点都已经有了,不必在额外创建新节点 动态开点线段树则是只开辟需要的节点...

2019-09-16 19:40:13

阅读数 24

评论数 0

原创 BZOJ 1500 [NOI2005]维修数列 (无旋treap良心题解)

题目传送门 上面链接沉了幸亏洛谷还有这道题 无旋treap解题的原理: 1.无旋treap可以在维护平衡的同时保持中序遍历不变(treap也可以,应该都可以),因此我们用下标代表插入二叉树的值,那么我们可以按照中序遍历获得原来的数组。 2.无旋treap的分裂操作可以分裂出包含前k个节点的...

2019-09-10 20:14:22

阅读数 31

评论数 0

原创 无旋treap/fhq-treap 模板 (附良心讲解 + 例题:洛谷P3369 普通平衡树)

博文更新: 20190917 更新了一下merge和split函数的递归理解 定义: 无旋treap,就是不通过旋转的维护堆性质的treap,根本的原理还是 tree + heap。 与普通treap的不同之处: 大概就是可以可持久化。 然后区间操作的话,不知道有旋的行不行,用无旋的反...

2019-09-09 22:57:45

阅读数 26

评论数 0

原创 HDU 1506 Largest Rectangle in a Histogram(笛卡尔树)

题目传送门 解题思路: 来来来,笛卡尔树了解一下 代码1:(非要用结构体版) #include<bits/stdc++.h> using namespace std; #define ll long long #define for1(i,a,b) for (int i=...

2019-09-07 21:28:51

阅读数 7

评论数 0

原创 笛卡尔树模板

如果学过treap(一种平衡二叉树),笛卡尔树应该很好理解 本文只介绍基础的建树,没有深入的东西。(你懂我意思吧) 笛卡尔树也是二叉树+堆 一、二叉树与堆的概念 可以看看我这篇,顺便把treap学了也可以,简单哒 二、笛卡尔树的结构 笛卡尔树可以按顺序插入一个数组,我们将下标当值插...

2019-09-07 21:27:47

阅读数 20

评论数 0

原创 Codeforces Round #583 (Div. 1 + Div. 2, based on Olympiad of Metropolises) ABCDEF

本场链接(contest/1214) Problem A 题意:给定两种兑换的货币的兑换率以及所有面额,问当前的卢比尽可能换成这两种货币后最少剩下多少? 解题思路:首先先把换这么多种面额简化成两种,即这两种货币的最小面额,因为每种货币较大的面额都是:最小的面额 x 对应倍数。 然后到了这里...

2019-09-06 21:32:35

阅读数 63

评论数 0

原创 POJ 1442 Black Box(Treap模板题)

题目链接:http://poj.org/problem?id=1442 题目大意: 就讲一下第二行数列到底是什么玩意儿吧,第二行的意思是插入第几个数的时候进行一次询问,第一次询问排第一,第二次询问排第二的... 解题思路: Treap模板题,所以我另写了一篇博客把这题需要的部分讲了一下:对...

2019-08-30 20:17:52

阅读数 27

评论数 0

原创 Treap模板

Treap = 二叉搜索树 + 堆 一、二叉搜索树 简称BST,每个节点最多有两个子节点,左子比当前节点小,右子比当前节点大。 因此对于插入和查找第k小的值,都可以从根递归着进行下去,在到达递归终点之前,不是选择这个节点左儿子就是右儿子,因此,操作的复杂度 = 树的深度。 然而,树会根据插...

2019-08-30 20:09:39

阅读数 20

评论数 0

原创 SPOJ - SUBLEX Lexicographical Substring Search(后缀自动机)

题目传送门 解题思路: 多组输入会RE(坑爹玩意儿) 后缀自动机上可以跑子串,因此每一位我们都按照a~z的取,这样可以使字典序尽量小。 怎样才能找到第k小的呢? DFS预处理每个节点包括自己共可形成多少子串,记为cnt[]。注意记忆化,不然GG(复杂度大概从O(26^2N)->O(...

2019-08-25 19:49:10

阅读数 26

评论数 0

原创 SPOJ - NSUBSTR Substrings(后缀自动机)

题目传送门 解题思路: 题意是求一个串各个长度的子串的可重叠最大重复出现次数。 ①首先我们肯定能想到构造后缀自动机的时候每加入一个新的字符新产生的子串长度一定是跟当前节点有关。用cnt[]记录每个节点的串出现的次数,在一个个添加字符的时候,每次在这个新产生的后缀节点+1,我们知道如果这个节点...

2019-08-24 19:10:28

阅读数 33

评论数 0

原创 SPOJ-LCS2 Longest Common Substring II (后缀自动机)

题目链接:https://www.spoj.com/problems/LCS2/en/ 解题思路: 对于两个串的LCS,我们只需对其中一个建sam,另一个在上面跑,记录最大值即可。 对于多个串的话,我们需要记录每个串跑sam的时候在每个节点的相同子串取最大值,每次跑完更新一下每个节点当前所有...

2019-08-23 12:20:08

阅读数 25

评论数 0

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