09 2022 档案

摘要:我不知道我题都没改完我写什么鲜花。但是懒得改了。 T3考场出了个大概是正解的东西然后写了160行将近5k代码心态就崩了(当时差不多十点,我就只做了T3)然后暴力跑路。然后挂成15分。 今日推歌是Alea jacta est!。还有一个是Artemis。想到BlackY就突然想起来这张专和这个加长版。 阅读全文
posted @ 2022-09-30 21:16 gtm1514 阅读(69) 评论(8) 推荐(5) 编辑
该文被密码保护。
posted @ 2022-09-30 20:39 gtm1514 阅读(4) 评论(0) 推荐(1) 编辑
摘要:%你退火,玄学算法。 大体借鉴了物理上的退火过程产生的算法。特点是过不过、能过多少点全部玄学。 典图: 我们可以看到,温度越低,我们得到的解偏移就越小,得到的答案也就越稳定。 用一句话概括整个流程就是:如果新状态的解更优则修改答案,否则以一定概率接受新状态。 设当前温度为 T ,新状态与当前状态 阅读全文
posted @ 2022-09-29 21:07 gtm1514 阅读(64) 评论(0) 推荐(1) 编辑
摘要:以后要不然这个可以一个星期一清。也就是只保留一个星期。 今天是疯狂星期四。但是没人v我50。难过。 和joke3579对着lyin的T4模拟退火代码一通复制然后得到了20发A了3发的结果。lyin脸是真好。 模拟赛日常保龄。T1不知道哪里挂了。然后剩下的不会。 然后Clover_BY先生淦了bkhk 阅读全文
posted @ 2022-09-29 19:44 gtm1514 阅读(69) 评论(5) 推荐(3) 编辑
摘要:据joke3579说明,lyin做过今天的题但是给机会了。 而且题目名称不管怎样都很吊。 T1 三分理论不对但是能过。但是场上把所有端点扒下来排序三分炸了。 #include<cstdio> #include<cstring> #include<iostream> #include<algorith 阅读全文
posted @ 2022-09-29 16:47 gtm1514 阅读(41) 评论(1) 推荐(0) 编辑
摘要:造了一个幂塔。但是vscode上出现了奇怪的现象。在洛谷博客上出现了更加诡异的现象。cnblogs还没试过。 $$2^{2^{2^{2^{2^{2^{2^{2^{2^{2^{2^{2^{2^{2^{2^{2^{2^{2^{2^{2^{2^{2^{2^{2^{2^{2^{2^{2^{2^{2^{2^{ 阅读全文
posted @ 2022-09-28 20:24 gtm1514 阅读(134) 评论(5) 推荐(11) 编辑
摘要:补一下莫队。 ## 莫队 对于序列上的询问问题,如果 [l,r] 的答案能 O(1) 扩展到 [l1,r],[l+1,r],[l,r1],[l,r+1] ,那么我们就可以用莫队来以 O(nn) 的复杂度离线解决。 实现实际上非常简单,离线所有询问然后排序,对序列分块, 阅读全文
posted @ 2022-09-28 15:09 gtm1514 阅读(30) 评论(0) 推荐(0) 编辑
摘要:前情提要:前些日子看Clover_BY操前看了蓝书上的一道题:(我操前一直什么也不带) 有 N 个学生合影,站成左端对齐的 k 排,每排分别有 N1,N2,,Nk 个人,第一排站在最后面,第 k 排站在最前面。学生的身高互不相同,把他们从高到低依次标记为 $1,2, 阅读全文
posted @ 2022-09-28 10:45 gtm1514 阅读(509) 评论(0) 推荐(2) 编辑
摘要:笛卡尔树是一种二叉树,每个节点有两个键值 x,y ,一个满足BST,一个满足堆。上图: 一个性质是如果键值确定那么笛卡尔树是唯一的。 笛卡尔树如果暴力构造很简单:找到整个序列最大/小的一个元素,将它作为当前的根节点,然后左右两边向下递归。但是这并不优秀。事实上我们有 O(n) 的构建方法。 阅读全文
posted @ 2022-09-27 20:24 gtm1514 阅读(78) 评论(0) 推荐(0) 编辑
摘要:套路题不会。考虑重修一下。 T1 经过考后的采访,joke3579、gtm1514、Chen_jr、Muel_imj四个人考场上写的Checker都拍过了然后都挂了零。 实际上从前往后扫,只要交换每个位置上比这个位置小 1 的数即可,因为这样会且仅会减少调整的这一对逆序对。 #include < 阅读全文
posted @ 2022-09-27 17:54 gtm1514 阅读(34) 评论(0) 推荐(0) 编辑
摘要:卢本伟nb。 T1 其实挺水。感觉懒得写就不写了。 赛时和joke3579打的multiset然后双双被卡。赛后看了看crs_line的做法。 #include <iostream> #include <algorithm> #include <cstdio> #include <stack> us 阅读全文
posted @ 2022-09-26 18:49 gtm1514 阅读(51) 评论(2) 推荐(0) 编辑
摘要:T1 傻逼性质题。考场上蒙了个性质拍过了。 证明考虑调整法。直接说结论:排序之后顺序取第一个,最后一个,第二个……一直取完即可。 /*稍微化简一下变成一个平方和和一组积的形式 五子棋大师yugyppah65 wc我蒙的结论居然对了 于是我们现在就只需要维护前缀上的答案 考虑我们现在有了前面的答案 怎 阅读全文
posted @ 2022-09-25 19:00 gtm1514 阅读(32) 评论(0) 推荐(0) 编辑
摘要:现在有这样一种感觉:是在留下永远不会在有人看的遗产。 T1 正解并查集,直接把每次给你的 x,y 用并查集合并一下(没有 y 就把 x0 合并一下)并加入答案,如果已经在一个集合里就不要加入答案就行了。下面这个不是我写的。 int main() { H=read(); L=re 阅读全文
posted @ 2022-09-24 15:06 gtm1514 阅读(36) 评论(0) 推荐(3) 编辑
摘要:T1 我们发现一对 s 之间的公共部分就是这个位置的数,所以我们直接离散化之后在每一对 s 之间连边然后跑欧拉路就可以。 比较水,数据也比较水。Delov使用了当前弧优化造数据把所有按着板子贺的欧拉路径卡成了45分。 #include <cstdio> #include <algorithm 阅读全文
posted @ 2022-09-23 20:26 gtm1514 阅读(10) 评论(0) 推荐(0) 编辑
摘要:实际上如果你觉得你切了两道题但是没拍的话那就真的会保龄。所以我挂了200。警钟长鸣。 ARC125C 使字典序最小的话,他给了 k 个我们需要扔掉最后一个不看,要不然可能不优。例子我不会举。 首先去掉最后一个之后显然我们最优的就是让他给的做第一个,然后怎么小怎么来。构造的话考虑每次在他给的数后面 阅读全文
posted @ 2022-09-22 15:46 gtm1514 阅读(59) 评论(3) 推荐(1) 编辑
摘要:这么久了发现平衡树还不会背所以来复习一下。 首先你得知道什么是二叉搜索树(BST)。它是一棵二叉树,且对于任意节点都满足左儿子权值小于该节点,右儿子权值大于该节点。 我们发现普通的二叉搜索树单次查询的最坏复杂度是 O(n) 的(比如下面这张盗的图): 所以我们有几种平衡树来解决这个问题,把查询的 阅读全文
posted @ 2022-09-21 20:26 gtm1514 阅读(35) 评论(0) 推荐(0) 编辑
摘要:AC 自动机,一般可以处理一类多模式串匹配问题,也可以拿来 dp 。大概就是 kmp+trie 。 首先我们知道给定单个模式串和单个文本串来匹配可以 kmp 。然后现在要多个模式串个单个文本串匹配。而且一个一个搞复杂度会爆炸。那 阅读全文
posted @ 2022-09-17 21:36 gtm1514 阅读(50) 评论(0) 推荐(0) 编辑
摘要:我也不知道为什么我求原根的板子都没打就来学ntt( 好吧其实知道原根是啥就行 阶 定义:若 gcd(a,n)=1 ,则满足 ax1(modn) 的最小正整数 x 称为 an 的阶,记作 ordn(a) 。 性质: $a,a^2, 阅读全文
posted @ 2022-09-11 16:49 gtm1514 阅读(38) 评论(0) 推荐(0) 编辑
摘要:来解决一下二进制卷积相关。以下均假设序列长度为 2 的次幂。 我觉得以后我行内 LATEX 应该加个空格。 快速沃尔什变换(Fast Walsh Transform,FWT) 这个是拿来在 O(nlogn) 时间复杂度内处理位运算(与、或、异或)卷积的。 重申一遍卷积:两个序列 $ 阅读全文
posted @ 2022-09-03 19:53 gtm1514 阅读(403) 评论(0) 推荐(0) 编辑
摘要:线段树的一种变体。可以用来维护区间内一堆线段(就是一次函数)的取值问题(全局修改是一个log的但是区间修改是两个log的,因为线段树一个log打标记一个log)。 比如说板子。 题意:维护区间的一大堆线段的最大值。 李超线段树的大体思路是维护一个区间中点处的优势线段(感性理解 阅读全文
posted @ 2022-09-03 19:52 gtm1514 阅读(83) 评论(0) 推荐(1) 编辑
摘要:针对目前的严重挂分现象我决定随手贺个拍的格式。 int main(){ system("./data"); system("./std"); system("./test"); if (system("diff std.out test.out -B -w -q"))printf("Wrong An 阅读全文
posted @ 2022-09-03 19:52 gtm1514 阅读(69) 评论(0) 推荐(0) 编辑
摘要:置顶:Delov大佬建议一定要封装多项式板子,不然日后会非常痛苦。 upd:换了多项式的板子。前面的不打算动了,毕竟不想把推导重修一遍。也作为一个常数较大但是较好理解的实现。跑的快的多项式板子在后半段。 对了如果直接找板子的话可以看挑战多项式的提交记录。没有封装。 多项式全家桶要来了。注意数组开4倍 阅读全文
posted @ 2022-09-03 19:52 gtm1514 阅读(134) 评论(0) 推荐(1) 编辑
摘要:分治fft,是一种基于分治的、可以在O(nlog2n)的复杂度内求解一类形如卷积形式的递推式的每一项的算法。具体的来举个例子。 【模板】分治fft 题意:给定数组g的前n项(从1开始),求f的前n项。其中f满足: $$f_i=\sum_{j=1}^if_{i-j}g_ 阅读全文
posted @ 2022-09-03 19:51 gtm1514 阅读(242) 评论(0) 推荐(0) 编辑
摘要:首先从多项式的概念说起。 多项式,就是形如i=0naixi的式子,ai是系数,x是变量,n为多项式的阶/次数。 然后是重要的多项式卷积:定义多项式fg的卷积h为: hi=j=0ifjgij 其实就是把两个多项式乘 阅读全文
posted @ 2022-09-03 19:50 gtm1514 阅读(588) 评论(0) 推荐(2) 编辑
摘要:众所周知,我们有n+1个点值可以唯一确定一个n次的多项式。拉格朗日插值可以在O(n2)的复杂度内求出这个多项式中任意一个f(k)的值。(当然你可以把k当成未知量x模拟多项式乘法和加法插出多项式的每个系数,复杂度O(n3)) 我们有这样一个多项式: $$f_i(x)=\ 阅读全文
posted @ 2022-09-03 19:49 gtm1514 阅读(84) 评论(0) 推荐(1) 编辑
摘要:manacher,是一种线性时间复杂度求解回文字符串的算法。而且很短。 首先我们观察回文串,发现有长度为奇数的(以某个字符为对称中心)和长度为偶数的(以两个字符间的空位为对称中心)。为了方便我们把它们转化成一样的,我们在字符之间插入一个占位符#,这样所有回文串就变成了奇数长度。 然后观察转移的方式。 阅读全文
posted @ 2022-09-03 19:48 gtm1514 阅读(26) 评论(1) 推荐(0) 编辑
摘要:凸包,即在平面上能包含给定所有点的最小凸多边形。它可以用最小的周长围住所有的点。 直接来到怎么求凸包。我们常用的有按照极角排序的Graham扫描法和按直角坐标排序的Andrew算法,两种算法的时间复杂度都是O(nlogn),且瓶颈都在排序。其中,Andrew算法由于常数更小(不需要求极角)而 阅读全文
posted @ 2022-09-03 19:48 gtm1514 阅读(112) 评论(0) 推荐(0) 编辑
摘要:大概是大多数基础的部分,顺便附上长篇大论的结构体封装。 如果whk有不懂的建议先搞懂whk的几何部分。 感谢lin4xu老师的计算几何板子。快去给我关注( 图形的记录 点/向量:直接记录坐标。 线:直线记录直线上一点和方向向量。线段记录两个端点。曲线记录函数解析式。 多边形:按顺/逆时针记录每个顶点 阅读全文
posted @ 2022-09-03 19:47 gtm1514 阅读(90) 评论(0) 推荐(0) 编辑
摘要:upd on 11.20:好像不少锅,懒得修了。 一个神奇的筛法,复杂度是神奇而且常数贼小的O(n34logn)。当然是拿来求积性函数前缀和的东西。一般拿来解决1010级别的前缀和处理。 首先对于我们O(n23)的杜教筛, 阅读全文
posted @ 2022-09-03 19:47 gtm1514 阅读(64) 评论(1) 推荐(0) 编辑
摘要:就是O(n)求个最小表示法的东西。流程也很简单。首先我们把原串复制一倍接到末尾。然后(下标从1开始)点两个指针i,j1,2,开始逐个字符暴力向后匹配,直到指向的字符不同。然后比较两个指向字符的大小,小的那个保留,大的那个往后跳。具体的看注释。 int main(){ scanf(" 阅读全文
posted @ 2022-09-03 19:46 gtm1514 阅读(21) 评论(0) 推荐(0) 编辑
摘要:wqs二分是巨佬王钦石在2012年论文中提出的一种二分方法。或者叫做带权二分。或者叫dp凸优化,一般用于nm求最小权值一类的问题。这类问题一般有两个特点: 复杂度一般都是O(nm)及以上,不能接受。 如果把这个限制m的条件去了那就很水。 ~~其实主要是你觉得这个题能用那就能用(~~ 阅读全文
posted @ 2022-09-03 19:46 gtm1514 阅读(637) 评论(1) 推荐(1) 编辑
摘要:启发式,就是发扬人类智慧来优化一些算法,比如启发式搜索和启发式合并。 启发式搜索就是根据人类直觉,给搜索设定一个估价函数,估价函数更符合条件的优先处理。举个例子,最短路里的估价函数就是最短距离。因为你手模的时候知道要先找最近的路而不是把所有的路都模拟一遍,把这个过程放到程序里实现就是启发式搜索。 然 阅读全文
posted @ 2022-09-03 19:46 gtm1514 阅读(163) 评论(0) 推荐(1) 编辑
摘要:斯坦纳树问题是一种组合优化问题,大概就是正权无向图上连接k个指定点所需要的最小权值。这是洛谷的板子题。 一句话题意:n个点m条边带权无向图选k个点连接,求最小权值。n100,m500,k10。 首先我们最后连接出来的图一定是一棵树。然后看这个k的范围很难不想 阅读全文
posted @ 2022-09-03 19:34 gtm1514 阅读(69) 评论(0) 推荐(0) 编辑
摘要:upd on 2023.3.25:终于补完了。马上省选了还不会这个。 看到今天他们A层邀请赛整了一个于是决定多少看看。 来源:吉如一老师2016年国家集训队论文《区间最值操作与历史最值问题》。oiwiki上的论文没有粘全,最后的四类讨论只有一类(而且没有精髓$Segment\ Tree\ Beats 阅读全文
posted @ 2022-09-03 19:33 gtm1514 阅读(362) 评论(0) 推荐(2) 编辑
摘要:由于某种程度上有点闲着没事干所以看了看硬币游戏这个题然后感觉应该学习一下概率生成函数于是就看了看几个题然后似乎发现了什么不得了的科技所以我觉得应该写篇博客总结一下(没错我就不加标点) 首先生成函数的定义不再赘述(其实是不想写) 对了前置知识:同济大学出版社 高等数学 上册 第二章 导数(实际上会求导 阅读全文
posted @ 2022-09-03 19:32 gtm1514 阅读(1465) 评论(1) 推荐(6) 编辑
摘要:卡特兰数,一个特殊的数列。通项公式为: Catn=C2nnn+10开始的前几项为:1,1,2,5,14,42,132,,所以有的题可以直接打个表看看(比如这个) 然后是它是怎么推出来的,最主要的就是从(0,0)(n,n)不穿过直 阅读全文
posted @ 2022-09-03 19:31 gtm1514 阅读(196) 评论(0) 推荐(1) 编辑
摘要:prufer序列,一种把有标号树用唯一的整数序列表示。它可以将一个带标号n个结点的树用n2个整数表示。 建立方法非常简单:每次找到无根树上编号最小的一个叶子,删掉它并记录它的父亲编号,重复n2次,直到只剩下两个节点结束。 我们可以以线性的复杂度使一棵树在树和prufer序 阅读全文
posted @ 2022-09-03 19:31 gtm1514 阅读(80) 评论(0) 推荐(1) 编辑
摘要:线性基,可以拿来搞异或一类的东西。它可以表示出原数组互相异或能异或出的所有值。 一些性质: 1. 线性基的元素能相互异或得到原集合的元素的所有相互异或得到的值。 2. 线性基是满足性质 1 的最小的集合。 3. 线性基没有异或和为 0 的子集。 4. 线性基中每个元素的异或方案唯一,也就是说,线性基 阅读全文
posted @ 2022-09-03 19:30 gtm1514 阅读(48) 评论(0) 推荐(2) 编辑
摘要:bsgs,北上广深,拔山盖世,蓝超巨星(blue super giant star)。大概是O(n)求解模意义下离散对数的一个算法。经典的平衡复杂度思想。 本质是根号分治。 离散对数,也就是长这样的一个东西: axb(modp)其中p是个质数, 阅读全文
posted @ 2022-09-03 19:30 gtm1514 阅读(98) 评论(0) 推荐(4) 编辑
摘要:我觉得既然你无法预料究竟要考什么那就在考到之前把oiwiki上的所有东西搬到你的博客里,这就是我现在正在做的。 点着色 (无自环无向图) 定义:对无向图的每个节点染k种颜色,使得相邻节点颜色不同,则该无向图是k可染色的。若该图是k可染色的,但不是k1可染色的,则k为该图$ 阅读全文
posted @ 2022-09-03 19:29 gtm1514 阅读(240) 评论(0) 推荐(0) 编辑
摘要:upd on 2023.2.22:今天是 b20 日,发现我半年多前写的这个东西是个什么几把,决定找时间翻修一下。 首先那些最基本的东西应该都不用说了。加法原理乘法原理小学生都会,组合数排列数初中也该会了(最起码应该见过吧)。下面讲一点别的。 多重集的排列数:一个多重集,n个元素,有k种,它 阅读全文
posted @ 2022-09-03 19:26 gtm1514 阅读(180) 评论(0) 推荐(0) 编辑
摘要:lyin场切黑题太强了 首先康托展开是用来求一个全排列的排名的东西。复杂度O(n2),树状数组可以到O(nlogn)。板子 简单说一下原理:首先一个长为n的排列数是n!没什么问题。所以我们可以对于每一位考虑有当前位之后有多少排列要比该排列小。 举个例子:3,1,4,2,5阅读全文
posted @ 2022-09-03 19:10 gtm1514 阅读(47) 评论(0) 推荐(0) 编辑
摘要:一堆小玩意,放到一起。 题意:给定一个n个元素数列,保证有一个数a的出现次数超过n2,求这个数。 数据范围n<=3000000,ai2147483647,时限0.5s,空间2M。 也就是说你就只开几个变量就行了。(虽然考试的时候有人拿ha 阅读全文
posted @ 2022-09-03 19:09 gtm1514 阅读(37) 评论(0) 推荐(0) 编辑
摘要:其实排序能用的上的就三个:快排,归并,基排(O(wys))。(其实priority_queue可能也算) 快排很好说,sort就行。还有一个stable_sort是相同大小元素顺序不变的稳定排序算法。(事实上我随了1e7个随机数,sort是3.412s,stable_sort是3.569s) 然 阅读全文
posted @ 2022-09-03 19:08 gtm1514 阅读(41) 评论(0) 推荐(0) 编辑
摘要:(我闲着没事干写这个干什么)(主要是看了整体二分然后心血来潮想补一下)(好了当天下午考了个三分函数极值卡精度了) 一类思想:二分法。 二分查找 顾名思义,二分一个元素的位置然后查找。前提是数组有序。这样我们可以每次二分中间的元素,若需要查询的元素比它小则把右端点跳到中间,反之跳左端点。 举个例子,查 阅读全文
posted @ 2022-09-03 19:08 gtm1514 阅读(40) 评论(0) 推荐(0) 编辑
摘要:扫描线的一些经典应用:求n个矩形的面积并和周长并。 面积并(P5490 【模板】扫描线) 首先扫描线的思想就是假设有一条无限长度的线从一个方向到另一个方向扫一遍整个图形,这样这个图形就变成了一大堆小矩形,然后算每个矩形的面积。这个过程可以上棵线段树。 怎么搞?首先我们随便找一维(我找的是y轴)离散化 阅读全文
posted @ 2022-09-03 19:07 gtm1514 阅读(85) 评论(0) 推荐(0) 编辑
摘要:cdq分治,一种广为人知的离线分治算法。大体的思想是: 将左右两边区间分开递归处理。 统计左边区间修改对右边区间查询的影响。 第一步很简单,写两个递归就行了。关键在第二步。我们搞个cdq的经典问题——三维偏序来具体解释这个东西。 P3810 【模板】三维偏序(陌上花开) 三维偏序,顾名思义,要求三维 阅读全文
posted @ 2022-09-03 19:06 gtm1514 阅读(150) 评论(0) 推荐(0) 编辑
摘要:一种大树变小树的方法。大概就是只保留题目要求的关键点和其他一些统计答案必须的点,把剩余的所有点从树上砍掉。原理是维护一条最右链(就是我们扫到的最右边的一条链,它左边的虚树已经建好)。 具体的操作: 首先把所有的关键点按照dfs序排序。然后开始分讨: 如果栈空则节点入栈。 找到该点与栈顶的lca。 如 阅读全文
posted @ 2022-09-03 19:06 gtm1514 阅读(29) 评论(0) 推荐(0) 编辑
摘要:并查集,是用代表元素来维护一个集合的数据结构。可以差不多O(1)地查询两个元素是否在同一个集合内。 并查集主要通过路径压缩和按秩合并减小复杂度。单独用的话最坏复杂度都是O(logn)的(虽然只路径压缩的均摊复杂度还是差不多O(1))。分开讲。 首先是初始化,每个元素各自属于自己的集合。 阅读全文
posted @ 2022-09-03 19:05 gtm1514 阅读(40) 评论(0) 推荐(0) 编辑
摘要:lca,即最近公共祖先。最近公共祖先,顾名思义,就是树上两个点最近的祖先。 我们大体上有三个算法来搞。 第一个:O(nlogn)预处理,O(1)查询。 大体上是借用了rmq问题的思路(就是区间最大/小值)来处理。 将树上问题转化为区间问题。 void dfs(int rt,int d){ v 阅读全文
posted @ 2022-09-03 19:05 gtm1514 阅读(208) 评论(0) 推荐(0) 编辑
摘要:专门开个博客一是因为没地放了,二是以后次小生成树什么的就一块扔这了。 最小生成树 点数n,边数m的图的最小生成树大概有两个算法: Kruskal算法(O(mlogm)) 思路非常简单粗暴,把所有边扔出来按照边权排个序,然后拿并查集维护点的连通关系,最后选出n-1条边。 int kruskal 阅读全文
posted @ 2022-09-03 19:05 gtm1514 阅读(23) 评论(0) 推荐(0) 编辑
摘要:三个很基础的板子放到一块。发现原来没有位置放了于是现开一个。 upd:加了一个。 字符串哈希 hash的思想是把一个字符串拍成一个数存储,这样就能快速比较两个字符串是否相同。 大概的方法: 我们选取一个合适的进制数(比如131这样的质数)和一个较大的模数。 将这个字符串看作一个p进制数(因为每个字符 阅读全文
posted @ 2022-09-03 19:04 gtm1514 阅读(48) 评论(0) 推荐(0) 编辑
摘要:二分图,顾名思义,能分成两部分,每部分之间没有边的图。判定很简单,染色法,没有奇环就行。 void dfs(int x,int col){ v[x]=col; for(int i=head[x];i;i=edge[i].next){ if(!v[edge[i].v])dfs(edge[i].v,3- 阅读全文
posted @ 2022-09-03 11:50 gtm1514 阅读(25) 评论(0) 推荐(0) 编辑
摘要:其实就是spfa 话说看spfa的时候突然发现我原来判负环的板子是锅的然后wa了好几次 就是形如xixjk的一群问题。我们发现把这个东西移个项之后变成了 xixj+k 看着长的就很像最短路。所以就从ji连一条权值为k的边,用最短路搞吧。特别的,有 阅读全文
posted @ 2022-09-03 11:47 gtm1514 阅读(13) 评论(0) 推荐(0) 编辑
摘要:欧拉路 首先结论: 一个图存在欧拉路则每个点的入度等于出度或者一个点的入度比出度大一(终点),一个点的入度比出度小一(起点),其他点入度等于出度。 然后是朴实无华的爆算。 void dfs(int x){ for(int &i=head[x];i;i=head[x]){//这里推荐这么写 机房某大佬 阅读全文
posted @ 2022-09-03 11:47 gtm1514 阅读(105) 评论(0) 推荐(0) 编辑
摘要:我也不知现在我学这个干什么但是真的闲着没事干又不想卷whk所以就来了。 首先前置芝士懵逼钨丝反演我之前已经差不多写过一个,但是有些结论建议看看oiwiki什么的反正我也没写。 首先杜教筛大家知道是个亚线性复杂度求积性函数前缀和的东西。于是现在我们有一个积性函数f(i),要求它的前缀和$S(n)= 阅读全文
posted @ 2022-09-03 11:46 gtm1514 阅读(11) 评论(0) 推荐(0) 编辑
摘要:joke3579大佬一直劝说我来切莫反 于是我切了一顿发现我一道都不会 所以写个这么个东西来稍微总结一下 莫比乌斯反演 首先莫比乌斯函数和狄利克雷卷积我就不说是什么东西了 整除分块不会的去看oiwiki抄一份过来就行 直接进入正题 反演公式 若f(n)=d|ng(d) 阅读全文
posted @ 2022-09-03 11:42 gtm1514 阅读(97) 评论(0) 推荐(3) 编辑
摘要:(淀粉汁) 对于静态的树上路径统计问题,点分治可以通过O(n\logn)的遍历复杂度求解。大概的思想是分通过每个节点的路径来统计。 首先我们对于树上统计问题,考虑这样一个思路:从每个节点开始,每次统计完所有通过这个节点的路径之后,把这个点从树上删除,然后递归统计所有剩下的子树。重复该步骤,直到统 阅读全文
posted @ 2022-09-03 11:41 gtm1514 阅读(27) 评论(0) 推荐(0) 编辑
摘要:树剖是把一棵树拆成一堆链,O(logn)地跳链,用一些数据结构维护每条链,从而实现增加1k代码而降低复杂度到O(log2n)的效果。 树链剖分大概分三种:长链剖分,实链剖分和重链剖分。一般说树剖就是重链剖分。 如何把树拆成链?我们定义一个节点的重子节点是它子树最大的儿子,其余的为轻子节点。 阅读全文
posted @ 2022-09-03 11:40 gtm1514 阅读(44) 评论(0) 推荐(0) 编辑
摘要:单调队列优化dp是个相对比较不显然的优化。 例题:P2034 选择数字 题意:一串正整数,选择若干个数使和最大,且没有连续的超过k个数被选择。 首先显然是个dp题。方程也比较显然。设dp[i][1]为选择第i个数后最大值, dp[i][0]为不选第i个数的最大值,s数组存前缀和。则方 阅读全文
posted @ 2022-09-03 11:39 gtm1514 阅读(26) 评论(0) 推荐(0) 编辑
摘要:Tarjan 大概分两类:无向图连通性和有向图连通性。先说有向图,比较简单。(大概) 有向图的连通性大体上就一个:强连通分量。这个我觉得大家都背过了。 首先定义两个数组dfn,lowdfn是每个节点在搜索树中的dfs序,low的定义是满足下列条件的最小dfn[x]: 该点在当前搜索栈中 阅读全文
posted @ 2022-09-03 11:38 gtm1514 阅读(23) 评论(0) 推荐(0) 编辑
摘要:单源最短路: Dijkstra 没有堆优化的是O(n2)的。但是由于防止一些毒瘤完全图,在此一并表出。(其实好像也卡不了多少) dijkstra的思想其实就是贪心。每次扫一遍所有点然后找当前距离最短的一个更新答案。某种程度上很像dfs。另外由于它的贪心性质,它不能判负权边。 void dijk 阅读全文
posted @ 2022-09-03 11:31 gtm1514 阅读(41) 评论(0) 推荐(0) 编辑

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