WuliWuliiii
凤兮凤兮归故乡 遨游四海求其凰
摘要: 学习动态树,我们首先需要了解到什么是Splay,推荐这一篇大聚聚yyb的博客。 我们在LCT中列写的Splay会以yyb的splay为基础作出改变,也是方便大家的后继学习,这样的排版。 LCT主要解决什么问题呢? 维护一个数据结构, 支持以下操作: 查询一个点的父亲 查询一个点所在的树的根 修改某个 阅读全文
posted @ 2019-05-31 00:34 唔哩Wulili 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题意: 有N个商家它们需要货物源,还有M个货物供应商,N个商家需要K种物品,每种物品都有对应的需求量,M个商家每种物品都是对应的存货,然后再是K个N*M的矩阵表示了K个物品从供货商运送到商家的单位上的价钱,那么就是标准的最大流最小费用了,我们只需要建立这样的边,对于所有的供应商都与源点建立 阅读全文
posted @ 2019-05-29 17:49 唔哩Wulili 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 题目链接 很明显的可以发现是一个扫描线的问题,但是怎么处理区域呢,发现只有三种颜色,也就是最多也就是7种状态,那么我们可以进行一个状态压缩即可。 但是,在向上pushup的时候,存在我们要以子树的状态来向上推,也就意味着一开始的目前节点是要去清空的,然后再去更新其覆盖的线长。 1 #include 阅读全文
posted @ 2019-05-28 19:03 唔哩Wulili 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目给出的是N个体积块,问的是有多少体积重叠了3次及以上? 那么就是怎么处理体积这样子的问题了,看到Z的种类不多的时候,就想着从Z离散化的角度去考虑这个问题了,然后就是怎样子去处理面积了,这时候想到每一个Z所代表的这个面对应上的体积,然后把每个面都处理出来看,体积就是在处理X的和,以及求Y 阅读全文
posted @ 2019-05-28 00:54 唔哩Wulili 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 题目链接 这道题求的是这些可能存在重叠的小方块可能构成的合成方块的周长的值是多少,有简单却会很复杂的做法就是去跑纵向和横向两次的扫描线,求得最后的两个周长和,但是这样的做法未免显得复杂了,我们完全可以只跑一次线段树(扫描线)来做到这样的要求。 思路:问题就是我们得去知道有多少个可以竖起来的边,也就是 阅读全文
posted @ 2019-05-26 17:48 唔哩Wulili 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 题目描述 > “舔狗舔狗,> 舔到最后,> 一无所有。”有 n 只舔狗,每只舔狗的心中都有自己朝思暮想的一位。每个人虽然受到了一万次拒绝,还毅然第一万零一次鼓起勇气。作为一个不食人间烟火的算法设计师,你早已看破红尘。但是,人世间的苦难仍让你挂念。看到众生在单恋中苦苦坚持,你决定普度众生,给大家找到一 阅读全文
posted @ 2019-05-25 17:02 唔哩Wulili 阅读(1112) 评论(0) 推荐(0) 编辑
摘要: Description 假设有来自n 个不同单位的代表参加一次国际会议。每个单位的代表数分别为 ri,i=1,2,...,n 。会议餐厅共有m张餐桌,每张餐桌可容纳ci(i=1,2, ,m) 个代表就餐。 为了使代表们充分交流,希望从同一个单位来的代表不在同一个餐桌就餐。试设计一个算法, 给出满足要 阅读全文
posted @ 2019-05-14 10:55 唔哩Wulili 阅读(345) 评论(0) 推荐(0) 编辑
摘要: 给定有向图G=(V,E)。设P 是G 的一个简单路(顶点不相交)的集合。如果V 中每个 顶点恰好在P 的一条路上,则称P是G 的一个路径覆盖。P 中路径可以从V 的任何一个顶 点开始,长度也是任意的,特别地,可以为0。G 的最小路径覆盖是G 的所含路径条数最少 的路径覆盖。 设计一个有效算法求一个有 阅读全文
posted @ 2019-05-13 21:42 唔哩Wulili 阅读(307) 评论(0) 推荐(0) 编辑
摘要: 题目链接 很好的一道题,用了三天多的时间,终于知道了我为什么T的原因,也知道了在Splay的同时该怎样子的节约时间,因为Splay本身就是大常数的O(N*logN),我们如果不在各种细节上节约时间,很容易就会造成T的是因为我们制造了一个同样的大常数。 先讲解一下题意:有两种操作,一个是一段区间内的值 阅读全文
posted @ 2019-05-12 17:31 唔哩Wulili 阅读(302) 评论(0) 推荐(0) 编辑
摘要: 题目链接 因为这道题没有删除修改之类的,所以很多人会用离散化之后的线段树来做,但是实际上(可能是我懒得去做离散化这个操作了),然后就是直接写可持久化线段树,区间的长度就是int的从最小到最大的长度,然后记录的是size,我们最后直接返回的是对应的位置即可。 1 #include <iostream> 阅读全文
posted @ 2019-05-10 11:13 唔哩Wulili 阅读(159) 评论(0) 推荐(0) 编辑