摘要:
#线段树 线段树例题整理 ##Part 1:题面 传送门:https://www.luogu.com.cn/problem/P6492(靠之前传送门放错了,暴露了我在机房逛B站的事实…… ##Part 2:思路整理 ###问题抽象化 题目中要求我们维护一个包含$L、R$序列,如果一个字序列中不包含连 阅读全文
摘要:
#双向(折半)搜索 ##Part 1:双向搜索概念与朴素复杂度分析 双向搜索是对于深度优先搜索的一种优化,它的基本思想是:把$dfs$从一端开始改为从两端开始,从而有效减少搜索状态 如果上面的定义不懂的话,请看下面两这张图(设$n$是搜索层数): 上面这个图就是普通的$dfs$在每次拓展两个节点的情 阅读全文
摘要:
#Dynamic Programming(DP) 动态规划刷题小结 例题1:乌龟棋 传送门:https://www.luogu.com.cn/problem/P1541 题目中先给出一个长度为$n$的序列(我们把它叫做序列$g$),其中$g_i$表示第$i$个格子的得分 另外,有四种卡片,每一种可以 阅读全文
摘要:
指针变量与应用——动态数组 在C++中,有一种神奇的变量,它不可以表示一个值,但是可以表示某个元素的地址,通过地址来访问这个元素。 打个比方:你有一张地图和一个坐标,你就可以通过访问这个坐标来达到你访问坐标所表示的元素的目的。指针变量就是这个“坐标”。 下面我们来具体看看指针变量的应用。 1、指针变 阅读全文
摘要:
最短路算法(三)Dijkstra算法 PS:因为这两天忙着写GTMD segment_tree,所以博客可能是seg+图论混搭着来,另外segment_tree的基本知识就懒得整理了…… Part 1:Dijkstra算法基本信息 以下,我们用dis[n]表示1->n的最短路径长度,vis[n]表示 阅读全文
摘要:
#离散化权值线段树 Part 0:作者前言(废话) 以前其实早就学过用二路归并排序的方法求序列的逆序对,因为一直没有学会二路归并,所以逆序对一直不会做 前几天学了线段树,然后无意间在书上看到了“线段树求逆序对”这样的问题…… 于是果断魔改一发线段树求一手逆序对。。。然后就有了这个博客 另外,祝贺我考 阅读全文
摘要:
我可能要退役了…… 退役之前,写一篇和我一样悲惨的算法:SPFA 最短路算法(二)SPFA算法 Part 1:SPFA算法是什么 其实呢,SPFA算法只是在天朝大陆OIers的称呼,它的正统名字叫做:队列优化的Bellman-Ford算法 在天朝,我们把它叫做“Shortest Path Fast 阅读全文
摘要:
最短路算法(一) 最短路算法有三种形态:Floyd算法,Shortset Path Fast Algorithm(SPFA)算法,Dijkstra算法。 我个人打算分三次把这三个算法介绍完。 (毕竟写太长了又没有人看QAQ……)但是这篇博客好像又双叒叕写的有点长,真的请各位耐心看完QAQ 今天先来介 阅读全文
摘要:
图论算法(一)存图 我发现我的博客阅读量贼低,问小伙伴们,ta们都说这些博客太长了QAQ! 今天来个短亿点的(也短不了多少……) 进入正题,图论究竟是什么? 图论就是给你一张图,让你在这张图上进行各种操作,但是我们要进行操作之前,要先明白图是什么。 如果你还不了解图是什么,我这里稍微BB一两句,如果 阅读全文
摘要:
在3月23号的广度优先搜索(bfs)博客里,我有提到写一篇深搜博客,今天来把这个坑填上。 第一部分:深度优先搜索(dfs) 以上来自百度百科。 简单来说,深度优先搜索算法就是——穷举法,即枚举所有情况,找寻可能的解法。 问题一:如何穷举? 假设我们对于1~4这些连续的自然数,我们需要求他的全排列。( 阅读全文