04 2019 档案

摘要:本着对数据结构这一块东西的一股兴趣,最近在集训的百忙之中抽空出来学LCT,终于学懂了这个高级玩意儿。 前置知识:Splay和树链剖分 Splay挺复杂的......这里就先不写,不然篇幅太大。树链剖分倒是可以大致地讲一下。 树链剖分 什么是树链剖分呢?就是把树给解剖成一条条的链子啦~那就先从最常用的 阅读全文
posted @ 2019-04-29 09:12 修电缆的建筑工 阅读(221) 评论(0) 推荐(0) 编辑
摘要:回想一下,当我们在肝无向图连通性时,我们会遇到一个神奇的点——它叫割点。假设现在有一个无向图,它有一个割点,也就是说把割点删了之后图会分成两个联通块A,B。设点u∈A,v∈B,在原图中他们能够互相到达,而删了割点后他们就不能了。于是类似的,我们能不能够在有向图里面也找出这样的“割点”呢?也就是说,现 阅读全文
posted @ 2019-04-28 19:03 修电缆的建筑工 阅读(441) 评论(0) 推荐(0) 编辑
摘要:图很丑。明显的树链剖分,需要的操作只有区间修改和区间查询。不过这里是边权,我们怎么把它转成点权呢?对于E(u,v),我们选其深度大的节点,把边权扔给它。因为这是树,所以每个点只有一个父亲,所以每个边权都可以唯一地、不重复地转移到点上去(除了根节点)。但是做区间操作时就要注意一下,区间两边端点的LCA 阅读全文
posted @ 2019-04-26 20:45 修电缆的建筑工 阅读(174) 评论(0) 推荐(0) 编辑
摘要:看题目是个板子题诶~做这个题还得被机友嘲讽只会切板子题...... 好那先看板子题的题目吧~ 题目描述 给出一个n个节点的有根树(编号为0到n-1,根节点为0)。一个点的深度定义为这个节点到根的距离+1。 设dep[i]表示点i的深度,LCA(i,j)表示i与j的最近公共祖先。 有q次询问,每次询问 阅读全文
posted @ 2019-04-26 20:34 修电缆的建筑工 阅读(111) 评论(0) 推荐(0) 编辑
摘要:问题是这样的:一共有2n个人,其中有n个好人,n个坏人。好人的编号是1~n,坏人的编号是n+1~2n。要求你求出最小的m(报数到m的人出局),让前n个出局的人都是坏人。 似乎除了暴力,我们想不出其它的什么办法来。而这题的数据范围......n<14!!!!!!!那就直接暴力好了(滑稽) 鬼知道它的复 阅读全文
posted @ 2019-04-23 20:49 修电缆的建筑工 阅读(136) 评论(0) 推荐(0) 编辑
摘要:如题。人数为n(1<=n<=30000),共k(1<=k<=30000)组数据,所报的数m恒为2,只要求输出幸存者。 如果你还不知道什么是约瑟夫问题...——https://www.cnblogs.com/akura/p/10758080.html 如果直接暴力枚举,那么时间复杂度就为O(NM)=O 阅读全文
posted @ 2019-04-23 20:26 修电缆的建筑工 阅读(214) 评论(0) 推荐(0) 编辑
摘要:有M个人,其编号分别为1-M。这M个人按顺序排成一个圈。现在给定一个数N,从第一个人开始依次报数,数到N的人出列,然后又从下一个人开始又从1开始依次报数,数到N的人又出列...如此循环,直到最后一个人出列为止。 输入只有一行,包括2个整数M(8 <= M <= 15 ),N( 5 <= N <= 3 阅读全文
posted @ 2019-04-23 18:23 修电缆的建筑工 阅读(236) 评论(0) 推荐(0) 编辑
摘要:根据数论的尿性,一般的定理解决不了的问题怎么办?那就拓展一下呗。 我们先看中国剩余定理,它解决的是一堆同余方程:nΞa1(mod b1),nΞa2(mod b2)...nΞak(mod bk),其中b1,b2...bk两两互质。但不互质的时候怎么办呢?不互质就解决不了了,因为bi和其他b1*b1*. 阅读全文
posted @ 2019-04-18 17:25 修电缆的建筑工 阅读(139) 评论(0) 推荐(0) 编辑
摘要:题目描述 现有两组数字,每组k个,第一组中的数字分别为:a1,a2,...,ak表示,第二组中的数字分别用b1,b2,...,bk表示。其中第二组中的数字是两两互素的。求最小的非负整数n,满足对于任意的i,n - ai能被bi整除。 输入输出格式 输入数据的第一行是一个整数k,(1 ≤ k ≤ 10 阅读全文
posted @ 2019-04-18 14:03 修电缆的建筑工 阅读(206) 评论(0) 推荐(0) 编辑
摘要:这是个名字很新奇的算法。它用来求方程axΞb(mod c)的最小非负整数解,其中ac互质。 先看欧拉定理:aΦ(c)Ξ1(mod c)。所以x肯定在0~Φ(c)-1里面。所以我们可以考虑枚举x。但显然会超时。 大步小步算法将我们的暴力枚举变得更加优雅了些。它的步骤是:把0~c-1分成m=√Φ(c)块 阅读全文
posted @ 2019-04-16 10:31 修电缆的建筑工 阅读(179) 评论(0) 推荐(0) 编辑
摘要:学Pollard_Rho之前,你需要学会:Miller Rabin。 这是一个很高效的玄学算法,用来对大整数进行因数分解。 我们来分解n。若n是一个素数,那么就不需要分解了。所以我们还得能够判断一个数是否为素数才行。而n是个大整数,显然普通的试除法和筛法都是不够它跑的。所以我们就得考虑用Miller 阅读全文
posted @ 2019-04-15 16:39 修电缆的建筑工 阅读(276) 评论(0) 推荐(0) 编辑
摘要:看一个数是否为质数,我们通常会用那个O(√N)的算法来做,那个算法叫试除法。然而当这个数非常大的时候,这个高增长率的时间复杂度就不够这个数跑了。 为了解决这个问题,我们先来看看费马小定理:若n为素数,a与n互质,则an-1Ξ1(mod n)。于是有人想过把它倒过来判断n是否为素数。首先,若a与n不互 阅读全文
posted @ 2019-04-15 09:35 修电缆的建筑工 阅读(242) 评论(0) 推荐(0) 编辑
摘要:其实本人学树剖时还完全没到学树剖的水平,但本着在图论这一块的兴趣就看了看,结果发现树剖还挺简单? 树剖是什么呢?看看它的全称:“树链剖分”。顾名思义,就是把一棵树解剖成一个个链子咯。然后在每条链上维护需要的信息,比如最小值、最大值、权值和什么的。这棵树的红线就是剖出来的链条:特别地,一个点也算一条链 阅读全文
posted @ 2019-04-12 21:09 修电缆的建筑工 阅读(374) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示