随笔分类 -  ACM

摘要:应用于K维数据的快速查找,比如横坐标,纵坐标,价格……,本模板以16青岛区域赛K题为例 —— 三维K - D Tree 模板 我们应该都见过平衡树吧,那就是1-D树,变成k维之后,我们连续分割1 - k维,然后继续分割,实现快速查找,画图的时候就能够理解这个数据结构了 n个旅馆 x,y,csot m 阅读全文 »
posted @ 2018-10-08 21:31 Butterflier 阅读(432) 评论(0) 推荐(0) 编辑
摘要:fastvj.rainng.com/contest/236779#problem/I Description: n个点m条路每条路 l,r,t:表示这条路开l秒,关r秒,通过要t秒,问你车辆从s到t最少要多少秒 Solution: (刷着最大流突然看到了我亲爱的最短路,真的是我相见恨晚,而且还是这个 阅读全文 »
posted @ 2018-10-04 16:08 Butterflier 阅读(155) 评论(0) 推荐(0) 编辑
摘要:http://fastvj.rainng.com/contest/236779#problem/G Description: n 行 m 列 给你行和 与 列和 然后有Q个限制,表示特定单元格元素大小的范围,最后问你可行的矩阵值 Solution: 有源汇上下界最大流问题,初始源点 连 行和流量是该 阅读全文 »
posted @ 2018-10-03 20:57 Butterflier 阅读(209) 评论(0) 推荐(0) 编辑
摘要:https://www.nowcoder.com/acm/contest/201/J Description: 给你一行括号,定义了括号合格的形式,然后Q次询问,问你这个区间内括号是否合格 Solution: 利用栈模拟,栈内记录括号的编号,如果新来的括号可以匹配栈顶元素的括号,那么就弹出,否则入栈 阅读全文 »
posted @ 2018-10-03 19:38 Butterflier 阅读(157) 评论(0) 推荐(0) 编辑
摘要:以无源汇上下界可行流为基础,如果有源点汇点呢,源点汇点是不必平衡的,我们要转变成无源汇的,那么源点流出的就要有一个汇点流入源点,同理也需要汇点流出,那很简单了,从当前汇点引一条边到当前源点,容量为inf即可,然后跑无源汇有上下界可行流就好啦 这样跑出来一个后,如何调整到最大流 / 最小流呢? 求最大 阅读全文 »
posted @ 2018-09-30 22:37 Butterflier 阅读(1021) 评论(0) 推荐(1) 编辑
摘要:摘自https://www.cnblogs.com/liu-runda/p/6262832.html 无源汇有上下界可行流(也就是循环流) 求出一个流:每条边的流量必须>=Li且<=Hi || 每个点必须满足总流入量=总流出量 算法的核心:将一个不满足流量守恒的初始流调整成满足流量守恒的流.(调整) 阅读全文 »
posted @ 2018-09-29 10:28 Butterflier 阅读(2325) 评论(0) 推荐(0) 编辑
摘要:Description: 一个N * N的奖赏地图,你可以走k次这个地图,但是每一次你走过一个有分的节点,你获得得分,但这个节点的得分都要清零,问你走k次地图的最大得分 Solution: 把得分变成负数就变成最小费用问题了,看看题目的要求进行建图,首先每个节点的访问次数最多也就k次,然后有分的点访 阅读全文 »
posted @ 2018-09-25 23:03 Butterflier 阅读(233) 评论(0) 推荐(0) 编辑
摘要:Description: N个订单(每个订单订K种商品),M个供应商(每个供应商供应K种商品),K种商品,后N行,表示每一个订单的详细信息,后M行表示每个供应商供应的详细信息,后K 个N * M的矩阵表示第m个供应商送第k种商品到第n个订单的花费 Solution: 建图,分商品来建,对于第k种商品 阅读全文 »
posted @ 2018-09-25 20:30 Butterflier 阅读(201) 评论(0) 推荐(0) 编辑
摘要:思路都理解了,清晰了,就是代码不对,还是有些小地方自己注意不到,即使就在你的眼前也不易发现的那种 Description: 也是一个最大流的构图,没相出来,或者说想简单了也是标记点1 至 n * m是层有物品加边0 - i - 1XXXXX 我想的是能调跳到安全点的加边i - t - 承受次数并且还 阅读全文 »
posted @ 2018-09-21 22:44 Butterflier 阅读(173) 评论(0) 推荐(0) 编辑
摘要:第一次面对建模的图,也映照了我以前想的算法不是重点,问题的转化才是重点 Description: N个任务,M台机器,对于每一个任务有p,s,e表示该任务要做p个时长,要从[s,……)开始,从(……e]结束,问你这些任务最后能完成吗Yes || No Solution: 做的是最大流专辑,知道是最大 阅读全文 »
posted @ 2018-09-20 23:02 Butterflier 阅读(161) 评论(0) 推荐(0) 编辑
摘要:嘿嘿嘿,时隔不久又见到了DInic,再次回顾一下吧 不过这次我倒是不想深究,而是想多做一些题,因为这几次比赛下来,算法不是重点,重点是题目如何转化,算法如何应用,这也是比赛为什么让你带着板子的原因吧,所以算法基本思想掌握了就好,不要去背,一看就能想通就行 Dinic算法通过bfs优先的分层处理,加以 阅读全文 »
posted @ 2018-09-20 19:51 Butterflier 阅读(220) 评论(0) 推荐(0) 编辑
摘要:Description: 一堆人需要联系,但如果x 可以联系 y,你联系了x就不用联系y了,你联系一个人都会有固定的花费,问你最小联系多少人,和最小花费 Solution: Tarjan缩点,求出缩点的入度,如果为0则代表这个缩点需要联系一次,缩点的时候维护好根点到达该缩点的最小值即可 #inclu 阅读全文 »
posted @ 2018-09-10 14:24 Butterflier 阅读(253) 评论(0) 推荐(0) 编辑
摘要:Describe: 求一个有向图加多少条边可以变成一个强连通图 Solution: Tarjan缩点染色后,判断出度和入度,所有点的出度 = 0 的和 和 入度 = 0 的和的最大值即为所求。 缩点染色 for(int i = 1;i <= n;++i) { if(!dfn[i]) { tarjan 阅读全文 »
posted @ 2018-09-09 22:42 Butterflier 阅读(118) 评论(0) 推荐(0) 编辑
摘要:和平常的树链剖分维护边权不同的地方在于对线段树的要求较高 NEGATE 反转区间,也就是a - b 内所有的边权取相反数 而Query询问是最大值,所以也就是维护可取反区间的最大值问题 需要维护的值是区间最大值,区间最小值(反转取件后交换其值),lazy标记(优化加速,标记完全反转最大区间) int 阅读全文 »
posted @ 2018-09-06 22:25 Butterflier 阅读(193) 评论(0) 推荐(0) 编辑
摘要:https://vjudge.net/contest/251031#problem/Dhttps://blog.csdn.net/kirito_acmer/article/details/51201994树链剖分加线段树染色维护我的难点在于线段树的维护 lc,rc,nc,lazy lc rc 主要是 阅读全文 »
posted @ 2018-09-05 22:54 Butterflier 阅读(187) 评论(0) 推荐(0) 编辑
摘要:比较水的题了,比模板题还要简单一点 理解了这个结构,自己打出来的,但是小错误还是很多,越来越熟练吧希望 错误函数updata,updata_lca,query||错误地方区间往下递归的时候是left <= mid || right > mid //https://vjudge.net/contest 阅读全文 »
posted @ 2018-09-04 10:09 Butterflier 阅读(179) 评论(0) 推荐(0) 编辑
摘要:恢复内容开始 对于一个树的图,有如下概念 重结点:子树结点数目最多的结点; 轻节点:父亲节点中除了重结点以外的结点; 重边:父亲结点和重结点连成的边; 轻边:父亲节点和轻节点连成的边; 重链:由多条重边连接而成的路径; 轻链:由多条轻边连接而成的路径; 基本原理,就是对于一组树形的数据结构的操作区间 阅读全文 »
posted @ 2018-09-03 14:37 Butterflier 阅读(148) 评论(0) 推荐(0) 编辑
摘要:求矩形的并的周长依然是利用扫描线计算横线的长度需要考虑的就是重合的情况,我们每次计算当前扫过后覆盖的长度,然后减去上一次覆盖的长度的绝度之,就是这一次的增加量 然后对于y轴的长度我们需要知道有几个分开的区间段,假设有m个我们的增量就是 2 * m * △y,有一个缺陷如果2 3 和 3 4都被覆盖那 阅读全文 »
posted @ 2018-08-16 19:12 Butterflier 阅读(253) 评论(0) 推荐(0) 编辑
摘要:关于扫描线的存储,离散化就不多说了 #include <cstdio> #include <iostream> #include <algorithm> #include <cmath> #include <string.h> #define lson rt<<1,left,mid #define 阅读全文 »
posted @ 2018-08-16 18:54 Butterflier 阅读(263) 评论(0) 推荐(0) 编辑
摘要:POJ 1151 Atlantis(线段树+扫描线) 参考博客https://blog.csdn.net/lwt36/article/details/48908031 上面博客的原理讲解非常清楚 在这我只对代码的模板分层讲解 一些基础的 #include <iostream> #include <c 阅读全文 »
posted @ 2018-08-13 16:03 Butterflier 阅读(193) 评论(0) 推荐(0) 编辑

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