自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 浅谈FFT

Fast Fourier Transportation·多项式的表达系数表达对于一个次数界为n的多项式A(x)=∑j=0n−1ajxj​A(x)=\sum_{j=0}^{n-1}{a_jx^j}​A(x)=∑j=0n−1​aj​xj​而言,其系数表达是由一个系数组成的向量a=(a0,a1,...,an−1)​a=(a_0,a_1,...,a_{n-1})​a=(a0​,a1​,...,an−...

2019-03-08 12:24:09 376 2

原创 对最近一段时间的总结

不知道是因为什么,可能是因为上了初三,学习生活紧张的缘故,我的信息学好像一直都不在状态。对最近的初三信息学和文化课的学习生活进行小小的总结:文化课:做作业容易分神:写着写着就容易被旁边的人所吸引。周围的一点点小动静都会分散我的注意力,这种浮躁的心理从小学就开始有,但是在初三的紧张生活中影响就更加明显。还有初一初二的贪玩习惯:总是会把当前应当完成的任务推到以后去做,例如会经常想:“这个作业...

2018-10-07 11:18:13 1078

原创 浅谈LCT

动态树问题, ,近几年在OI中兴起的一种新型问题,是一类要求维护一个有根树森林,支持对树的分割, 合并等操作的问题。由RobertE.Tarjan为首的科学家们提出解决算法Link-Cut Trees,简称lct。本段摘自百度 要学lct,首先必要的基础必须有:树链剖分(点这里)Splay(点这里)有了这些基础,我们就可以开始学习lct。几个概念Pref...

2018-08-25 11:28:55 1149

原创 Tarjan算法介绍

一种由Robert Tarjan提出的求解有向图强连通分量的线性时间的算法。Tarjan与无向图连通性·几个定义给定无向图G=(V,E)G=(V,E)G=(V,E) 如果割掉点x,图中的连通块数量增加,则称x为G的割点 如果割掉边e,图中的连通块数量增加,则称e为G的桥或割边·时间戳在图的深度优先搜索中,按照每个节点的访问顺序所给每个点编的号,该编号叫做“时...

2018-07-14 09:19:14 1005

原创 欧几里得&扩展欧几里得算法

朴素的欧几里得算法大家应该知道gcd(a,b)gcd(a,b)gcd(a,b)表示a,b的最大公约数 朴素的欧几里得算法其实就是所谓的辗转相除法辗转相除法 gcd(a,b)=gcd(b,agcd(a,b)=gcd(b,agcd(a,b)=gcd(b,a modmodmod b)b)b) 证明如下: 设r=a设r=a设r=a modmodmod bbb =a−⌊ab⌋∗b=a−⌊a...

2018-07-04 07:39:46 259

原创 进化版数据结构(可持久化)

主席树和可持久化线段树有什么区别? 总之没什么区别!!主席树(可持久化线段树) 可持久化线段树(Persistent data structure)最主要的功能就是可以查询历史版本。那么presistent≈president(主席),得名主席树。给你个问题: 给你一段数列,要求查询一段区间的第k小数。(n&amp

2018-05-24 12:31:34 1079

原创 浅谈Suffix Automaton(后缀自动机)

这是一个强大的automaton——Suffix Automaton==>我学过最强大,最牛犇,最难理解的自动机现在给你一个问题: 给定一个字符串,要求这个字符串所有子串出现的次数分别是多少朴素算法①枚举左端点,枚举右端点,用hash记录一下,统计个数。(注意最好双hash,保证正确率) 预计时间复杂度:O(n2)O(n2)O(n^2) ②可以直接开...

2018-05-07 19:55:42 1379

原创 浅谈Aho-Corasick automaton(AC自动机)

Aho-Corasick automaton是什么? 要学会AC自动机,我们必须知道什么是Trie,也就是字典树。Trie树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。首先我们要知道trie,而且要知道KMP,这样就可以学AC自动机了!其实AC自动机就是trie和...

2018-04-13 14:07:35 1990 2

原创 浅谈树链剖分

什么是树链剖分? 指一种对树进行划分的算法,它先通过轻重边剖分将树分为多条链,保证每个点属于且只属于一条链,然后再通过数据结构(树状数组、SBT、SPLAY、线段树等)来维护每一条链,主要用来维护树上每条链的极值或和之类的。类似首先把树上倍增摆在前面,如果不会树上倍增就不必来看树链剖分。为什么要学树链剖分?有的人说:“我会树上倍增,我怕谁?”,没错,你怕的就是树链...

2018-01-28 21:11:47 3546 4

原创 浅谈伸展树(Splay)

//本文是一个暂时的小记,有不对的请大佬们指出~ 真正大佬的在这http://blog.csdn.net/clove_unique/article/details/50630280 伸展树(Splay Tree),也叫分裂树,是一种二叉排序树,它能在O(log n)内完成插入、查找和删除操作。它由丹尼尔·斯立特Daniel Sleator和罗伯特·恩卓·塔扬Robert Endre Ta...

2018-01-17 20:43:42 364

原创 浅谈网络流

网络流是什么? 网络流(network-flows)是一种类比水流的解决问题方法,与线性规划密切相关。网络流的理论和应用在不断发展,出现了具有增益的流、多终端流、多商品流以及网络流的分解与合成等新课题。网络流的应用已遍及通讯、运输、电力、工程规划、任务分派、设备更新以及计算机辅助设计等众多领域。图论中的一种理论与方法,研究网络上的一类最优化问题 。1955年 ,T.E.哈里斯在研究铁...

2017-12-22 21:30:27 457

原创 探究最长不下降子序列

简介 这是一个很初级的dp模型,最简单的是O(n2)O(n2)O(n^2)的,但是为了时间快,我们有出现了O(n log n)的算法。在这里予以讲解。讲解一、O(n2)O(n2)O(n^2)这个想必大家一定闭着眼睛都能打出来吧。 我们设f[i]表示取到第i个的最长子序列长度。 然后就可以N2N2N^2枚举,暴力转移:f[i]=max(f[i],f[j]+1);...

2017-09-25 16:30:57 467

原创 浅谈二分图最大匹配(匈牙利算法)

讲解匈牙利算法,(俗称“找妹子算法”),是一种求二分图最大匹配的常用算法。 为什么叫“找妹子算法”呢? 这是因为它的实现原理很像在找妹子: 首先,我们把一堆点分成两边(这才是“二分”,不是真正的“二分”): 男女生两个点之间连一条线表示他们互相喜欢 现在我们要求尽量每个人都找到妹子的最大匹配。 我们首先看,Boy1(我们以后都这样称呼),首先看一下Girl5:“还是单身,不错不...

2017-08-18 21:03:36 883

原创 浅谈树上倍增

Tarjan LCAhttp://blog.csdn.net/cdy1206473601/article/details/77104910讲解上次写了Tarjan LCA,但是当这棵树是一条链的话,时间复杂度就很高啦!所以,我们可以用倍增来解决。但是,在随机数据下,Tarjan是快于倍增的! 好吧,倍增思想就是设一个fa[i][j]表示i结点的第2j2j2^j级祖先。然后就可以通...

2017-08-15 07:51:05 715

原创 浅谈LCA(最近公共祖先)

简介 首先是最近公共祖先的概念(什么是最近公共祖先?): 在一棵没有环的树上,每个节点肯定有其父亲节点和祖先节点,而最近公共祖先,就是两个节点在这棵树上深度最大的公共的祖先节点。 换句话说,就是两个点在这棵树上距离最近的公共祖先节点。 所以LCA主要是用来处理当两个点仅有唯一一条确定的最短路径时的路径。讲解我们今天介绍一种计算LCA的方法——Tarjan。 ...

2017-08-12 07:47:04 1009

原创 浅谈权值线段树

简介 线段树大家都知道,不知道的话点这里。我们线段树是以标号为关键字的线段树,顾名思义,权值线段树就是以权值为关键字的一棵线段树。其实在实现的时候,比线段树还简单,如果你真正理解了线段树的话~~权值线段树一般是用来快速求一个区间的第k大(或小),如果你会splay的话请自动点×。工作原理权值线段树是用来求第k大(或小的)。假设我们由一串数:1,5,2,7,4,6。要你求每次按...

2017-08-08 21:31:08 2871 1

原创 浅谈KMP

简介 KMP算法是拿来处理字符串匹配的。换句话说,给你两个字符串,你需要回答,B串是否是A串的子串(A串是否包含B串)。比如,字符串A=”I’m matrix67”,字符串B=”matrix”,我们就说B是A的子串。操作原理假如,A=”abababaababacb”,B=”ababacb”。两个指针i和j表示,A[i-j+ 1..i]与B[1..j]完全相等。就是说,i不...

2017-07-11 16:32:40 285

原创 浅谈堆

简介 堆结构是一种数组对象,它可以被视为一颗完全二叉树(除了叶子节点别的节点都是满的)。树中结构与数组中存放该节点值得那个元素是对应相同的,见图:堆的性质设数组A的长度为len,二叉树的节点个数为size,size<=len,则A[i]存储二叉树中编号为i的节点值(1<=i<=size),而A[size]以后的元素并不属于相应的堆,树的根为A[1],...

2017-07-10 20:56:08 500

原创 浅谈归并排序

简介 归并排序是一种O(n log n)的排序方法,但是比快排要稳定一点,所以我们通常用它来解决更大数量的排序实际原理其实,归并排序是用dfs来排序的 工作原理如下: 采用递归实现二分的方式排逐个排序,到最终dfs返回的时候完成排序。var a,r1:array[0..200000]of longint; n,i:longint...

2017-07-09 20:00:23 360

原创 SPFA经典优化

SPFA对于稀疏图非常的有用,然而对于稠密图就是辣鸡。。(还是很厉害的)。 稠密图可以使用dij,但是SPFA真的败给了稠密图了吗? 答案是不是的,优化强着呢,杠杠滴~优化一:SLF 怎么做呢? 假设我们当前在跑SPFA的最短路(下面都是)。 设我们的队头为i,要加进去队列的数为j,那么我们就可以根据最短路,加出如下优化 若dis[j]

2017-01-20 16:37:16 424

原创 浅谈最小生成树

简介 Kruskal(克鲁斯卡尔)算法是一种巧妙利用并查集来求最小生成树的方法。首先我们把无向图中互相连通的一些点成为处于同一连通块的。Kruskal算法将一个连通块仿作一个集合。Kruskal首先将所有的边按从小到大的顺序排序,并认为每一个点都是孤立的,分属于n个独立的集合。然后按顺序美剧每一条边。如果这条边链接着两个不同的集合,就把这两条边加入最小生成树,这两个不同的集合就合并了;如果...

2017-01-17 16:37:13 362 1

原创 浅谈单源最短路径(Spfa,Dijkstra)

Spfa Spfa是类似bfs的一种图论方法,运用队列更新dis[i],求得图中1~n的最短路径。Spfa中用到dis[i]表示图中每一点距离起点的长度,bz[i]用来记录编号为i的点是否入队,a[x,y]表示图中x~y之间的距离,b[x,i]表示编号为x的点的第i条边的终点,每次更新这个终点到起点的距离,以当前入队的点来更新,最后求出答案。 tov[i]表示编号为i的边的终...

2017-01-17 15:54:05 355 1

原创 浅谈RMQ

RMQ是英文Range Maximum(Minimum) Query的缩写,顾名思义是用来求某个区间内的最大值或最小值,通常用在要多次询问一些区间的最值的问题中。 RMQ的原理实际上是动态规划,我们用A[1..N]表示一组数,用[Li,Ri]表示题目中所涉及到询问区间。设F[I,J]表示从A[I]到A[I+2j2j2^{j}-1]这个范围内的最大值,也就是以A[I]为起点连续2j2j2...

2017-01-17 15:34:43 1088

原创 浅谈线段树

首先,线段树是一棵“树”,而且是一棵完全二叉树。同时,“线段”两字反映出线段树的另一个特点:每个节点表示的是一个“线段”,或者说是一个区间。事实上,一棵线段树的根节点表示的是“整体”的区间,而它的左右子树也是一棵线段树,分别表示的是这个区间的左半边和右半边。 在此我们可以举一个例子来说明线段树通常的构造方法,以RMQ问题为例: 有N个数排成一排,每次询问某一段中的最小数。 ...

2017-01-17 15:31:13 487

原创 浅谈快速幂

定义:快速幂顾名思义,就是快速算某个数的多少次幂。其时间复杂度为 O(log2N), 与朴素的O(N)相比效率有了极大的提高。以下以求a的b次方来介绍原理:把b转换成2进制数该2进制数第i位的权为(2^(i-1))例如a^11=a^(2^0+2^1+2^3)11的二进制是1 0 1 111 = 2^3*1 + 2^2*0 + 2^1*1 + 2^0*1因此,...

2016-12-24 16:04:03 253

原创 c++双向链表

【代码】c++双向链表。

2023-10-16 22:48:39 55

原创 c语言指针动态分类数组

c语言动态分配

2023-06-02 14:19:28 460

原创 LCS、LIS及LCIS

LCS、LIS、LCIS

2022-10-05 20:54:01 598

原创 背包问题总览

背包问题

2022-09-02 22:01:28 486 1

原创 致新生的生命

致新生的生命

2022-09-02 09:37:53 136

原创 CSP2019

“够钟退役了”DAY0他们都回家了,我跟几个同学留在机房里面学了一天…希望RP++上车、睡觉、入住酒店。晚上点了个酸辣粉尝尝,辣我一脸泪酒店的床…不知道该说什么…没睡好DAY1进考场发现监考的两个的大哥哥很面善“认真思考”第一题一如既往的水,5分钟95分了。woc最后五分要高精度好烦哦好吧打!打打打打打打打打打了我半小时。拍过已经九点半了。第二题很快有想法了。有点慌...

2019-11-19 16:09:21 446

原创 读《炫酷反演魔术》有感——各种反演(待填坑)

阅读原文以下内容只是为了给自己看%%%VFleaKing下面进入正题:什么是反演二项式反演ppt一开始给了一道题目:这是个很简单的容斥问题:F(n)=∑k=0n(−1)k(nk)(n−k)!F(n)=\sum_{k=0}^{n}(-1)^{k}\tbinom{n}{k}(n-k)!F(n)=k=0∑n​(−1)k(kn​)(n−k)!原文用了和通俗易懂的说法和图来解释这个容斥...

2019-11-12 17:27:29 474

原创 CSP-S 2019策略分析

基本策略一些去重的题可以考虑放到平面上,然后最后用扫描线直接算面积,从而达到去重的目的。离散化动态规划这是一类非常需要注意的题,注意状态的设置以及思考优化方法,具体有:时间优化:前缀和单调队列斜率优化数据结构矩阵乘法*四边形不等式(出现几率不大)空间优化:去除无用状态循环状态模拟这类题几乎没有思维难度,但是要考察对情况的考虑是否完全,需要重点考虑情况是...

2019-11-04 21:45:58 974

原创 Catalan数

抛出一个问题:一个长度是2n的0/1串,包含n个0以及n个1,需要保证对于任何一个k<=2m满足1~k中0的个数要大于等于1的个数。问方案数:看起来好像好难…Catalan数显然我们知道在总方案数是C2nnC_{2n}^{n}C2nn​使用容斥原理减去那些不合法的我们需要证明两个引理:①每一个问题中不合法的序列都一定对应一个有(n+1)个0和(n-1)个1的序列。②对于一...

2019-10-21 21:05:28 161

原创 线性求逆元

显然p≡0(modp\equiv0(modp≡0(mod p)p)p)我们p=k⋅i+rp=k·i+rp=k⋅i+r则k⋅i+r≡0(modk·i+r\equiv0(modk⋅i+r≡0(mod p)p)p)两边同时除以一个i−1⋅r−1i^{-1}·r^{-1}i−1⋅r−1则k⋅r−1+i−1≡0(modk·r^{-1}+i^{-1}\equiv0(modk⋅r−1+i−1≡0(mod...

2019-09-12 22:15:58 107

原创 2019.09.07【NOIP提高组】模拟 A 组总结

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...

2019-09-07 15:08:24 126

原创 李超树——由一次NOIP模拟赛引出的车祸记

李超树是什么?李超树是一种用线段树来维护直线的一种方法,因为是集训队队员李超在论文中提到,所以尊称为李超树。这是一次怎样的NOIP模拟赛?这是一次关于生死的考验.所以我十分认真对待。第一题如此:我一下子就想到了李超树,只是把直线换成抛物线而已嘛~所以就开始着手。。由于第一次打李超树,有点尴尬。1个小时调对样例…3个小时拍完…然后很尴尬的发现极限数据我跑了23秒!!!心态没...

2019-09-05 17:01:12 193

原创 挖宝藏

Solution这是一个较经典的斯坦纳树模型就是把一堆点串起来的最小代价。所以说最小生成树只是斯坦纳树的一个特殊情况.所以我们可以设f[i][j][k][S]表示在当前(i,j,k)这个位置上,我们在同层已经选了集合为S的点的最小代价方程可以写成f[i][j][k][S]=f[i][j][k][s]+f[i][j][k][S−s]−a[i][j][k];f[i][j][k][S]=f...

2019-08-14 08:26:36 517

原创 数学题

可以证明所以我们每次把角度尽量增大#include<cstdio>#include<iostream>#include<cmath>using namespace std;long long x_0,y_0,x_1,y_1;double dis(long long x,long long y){ return sqrt(x*x+y...

2019-08-13 21:56:02 172

原创 CSDN的新世界

因为之前CSDN看博客要登录,所以我重新建立了一个博客园的博客重要的部分我会copy过去https://www.cnblogs.com/Chandery/前几天不知道什么原因无法登陆CSDN然后就连所有的CSDN博客我都打不开,气得我当场就破口大骂结果今天它居然开了?然后我再试一试登录居然也开了!也许这是CSDN的新世界吧!我决定以后CSDN、博客园双更!...

2019-08-13 14:31:55 526

空空如也

空空如也

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

TA关注的人

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