一、点分治概述及应用 点分治是一种在树上进行路径静态统计的算法。 所谓树上的静态统计,并不是像树剖一样维护路径最值、路径和之类的统计。那样的话,这个算法的存在就没什么意义了。 来上道小题体会一下点分治的解决问题。 给定一棵有n个节点的带边权无根树。求长度不超过k的路径有多少条。 看懂了么?就...
洛谷P6154 游走 洛谷传送门 题目背景 zbw 在 B 城游走。 题目描述 B 城可以看作一个有 nn 个点 mm 条边的有向无环图。可能存在重边。 zbw 在 B 城随机游走,他会随机选择一条路径,选择所有路径的概率相等。路径的起点和终点可以相同。 定义一条路径的长度为经过的边数,你
“蜜桃社 – 2016.06.14 VOL.014 米琪MIKI[60P167M] - 鸽子c...”是一种充斥着不良信息和不健康行为的现象,需要得到批判和警示。这种现象在当今社会已经变得越来越普遍,对青少年和社会风气产生了极为不良的影响。首先,这种现象在内容上存在着过度的暴露和低俗化。这种所谓的“蜜桃社”所展示的内容往往是以性感、...
背包九讲 背包问题是一种动态规划算法的衍生问题。它可以被看作一种独立的题型,也可以看作是一种线性动态规划。学好背包、学会背包,对于深入理解动态规划算法有着极大的好处,并能帮助理解一些更深层次的动态规划问题。 背包问题分支有许多子问题。每一个问题有一个相对独立又互相关联的解决方法。在本篇随笔中,我使用...
本篇随笔简单讲解一下网络流中的网络最大流。 由于这是本蒟蒻的网络流第一篇讲解,所以也会连带介绍网络流的一些基本概念等问题。在后续的网络流讲解中(如果没退役还有的话),就会直接链接引到本篇博客。 本篇讲解的部分图片摘自知乎@Pecco、博客园@chc_1234567890,以及互联网。感谢各路大佬的支持。希望共同进步。
本篇随笔讲解C++STLC++STL中bitsetbitset容器的用法及常见使用技巧。 bitsetbitset容器概论 bitsetbitset容器其实就是个0101串。可以被看作是一个boolbool数组。它比boolbool数组更优秀的优点是:节约空间,节约时间,支持基本的位运算。在bitsetbitset容器中,88位占一个字节,相比于boolbool数组44位一个字节的空间利用率要...
树堆(Treap)详解 本篇随笔详细讲解一下一种随机化数据结构——树堆($Treap$)。 树堆的概念 首先给一个字符串等式: $$ Treap=Tree+heap $$ 所以$Treap$树堆其实就是树+堆。树是二叉查找树$BST$,堆是二叉堆,大根堆小根堆都可以。 关于$BST$的相关知识,请看
还有一个叫归并,时间稳定不爆锅。 —— 一个会说相声的博主的引言 相比于一些复杂度不太稳定的排序算法(比如快排,最坏的时候会退化成O(n2)O(n2)级别的)或者时间稳定但是本来就是O(n2)O(n2)级别的(汗),归并排序的好处就是将时间复杂度妥妥地控制在O(nlogn)O(nlogn)级别,在数据量很大的情况下会比O(n2...
洛谷P1220 关路灯 洛谷传送门 题目描述 某一村庄在一条路线上安装了 nn 盏路灯,每盏灯的功率有大有小(即同一段时间内消耗的电量有多有少)。老张就住在这条路中间某一路灯旁,他有一项工作就是每天早上天亮时一盏一盏地关掉这些路灯。 为了给村里节省电费,老张记录下了
本篇随笔详细讲解一下算法竞赛中的一种数据结构——权值线段树。 前置知识 在讲解权值线段树之前,我们首先要明确:权值线段树属于一种线段树,它的本质仍然是线段树。所以在学习权值线段树之前,如果还对普通线段树并没有一个深刻的了解的话,请先移步这篇博客来学习简单线段树。