08 2018 档案
发表于 2018-08-16 19:12阅读:253评论:0推荐:0
摘要:求矩形的并的周长依然是利用扫描线计算横线的长度需要考虑的就是重合的情况,我们每次计算当前扫过后覆盖的长度,然后减去上一次覆盖的长度的绝度之,就是这一次的增加量 然后对于y轴的长度我们需要知道有几个分开的区间段,假设有m个我们的增量就是 2 * m * △y,有一个缺陷如果2 3 和 3 4都被覆盖那
阅读全文 »
发表于 2018-08-16 18:54阅读:263评论:0推荐:0
摘要:关于扫描线的存储,离散化就不多说了 #include <cstdio> #include <iostream> #include <algorithm> #include <cmath> #include <string.h> #define lson rt<<1,left,mid #define
阅读全文 »
发表于 2018-08-13 16:03阅读:193评论:0推荐:0
摘要:POJ 1151 Atlantis(线段树+扫描线) 参考博客https://blog.csdn.net/lwt36/article/details/48908031 上面博客的原理讲解非常清楚 在这我只对代码的模板分层讲解 一些基础的 #include <iostream> #include <c
阅读全文 »
发表于 2018-08-08 19:12阅读:214评论:0推荐:0
摘要:Description 有一台起重机。我们把起重机看作由N条线段依次首尾相接而成。第i条线段的长度是Li。最开始,所有的线段都笔直连接,指向上方。现有C条操纵起重机的指令。指令i给出两个整数Si和Ai,效果是使线段Si和Si+1之间的角度变成Ao度。其中角度指的是从线段Si开始沿逆时针方向旋转到Si
阅读全文 »
发表于 2018-08-08 14:45阅读:142评论:0推荐:0
摘要:Description 输入n个有序对< pi, vi >,pi表示在第pi个位置后面插入一个值为vi的人,并且pi是不降的。输出最终得到的v的序列 Input 多组用例,每组用例第一行为有序对组数n,之后n行每行两个整数表示一个有序对,以n=0结束输入 Output 对于每组用例,输出最后得到的序
阅读全文 »
发表于 2018-08-06 20:25阅读:180评论:0推荐:0
摘要:问题类型:是多次询问一个大区间里子区间的最值问题 dp + 位运算的思想处理 rmax[i][j]表示从i开始到i + 2^j - 1的区间里的最大值dp[i][j] (i,i + 2^j - 1)分为 dp[i][j-1] (i,i + 2^(j-1) - 1)dp[i + 1 << (j-1))
阅读全文 »
发表于 2018-08-06 18:52阅读:196评论:0推荐:0
摘要:距离B - Distance in the Tree 还是普通的LCA但是要求的是两个节点之间的距离,学到了一些 一开始我想用带权并查集进行优化,但是LCA合并的过程晚于离线计算的过程,所以路径长度会有所偏差 所以失败告终 网上查询之后懂得要提前进行一下预处理,在输入完全部的边之后,也就是数形成之后
阅读全文 »
发表于 2018-08-05 21:20阅读:260评论:0推荐:0
摘要:LCA tarjan+并查集POJ1470 https://www.cnblogs.com/JVxie/p/4854719.html 不错的一篇博客啊,让我觉得LCA这么高大上的算法不是很难啊,嘻嘻嘻 这是个离线算法,现在的粗略理解是输入完毕询问完毕后进行解决的算法 用了并查集 1···选取根节点
阅读全文 »
发表于 2018-08-05 15:21阅读:182评论:0推荐:0
摘要:找了找A题比较多的牛客水体来做,还是挺困难 第一题灯塔 十字分布比较好判断 maxx,miny||minx,miny ———————————— maxx,maxy||minx,maxy 是这么的分布 所以只需要寻找有没有这样的点即可 那成四十五度歇着的框怎么办呢 原来只需要旋转一下,求出对应旋转后的
阅读全文 »
发表于 2018-08-03 16:11阅读:335评论:0推荐:0
摘要:部分内容引自https://www.cnblogs.com/stxy-ferryman/p/7779347.html Tarjan算法不是一个算法而是一类算法 1.求取强连通分量 强连通分量————有向图的强连通子图 tarjan算法基于dfs,利用栈的思想,把下面所有的点都遍历完毕后,所能链接的最
阅读全文 »
发表于 2018-08-03 10:02阅读:173评论:0推荐:0
摘要:做题时又遇到了疑惑,说明一开始就没有完全理解 基于dfs的tarjan,搜索时会有四种边 树枝边:DFS 时经过的边,即 DFS 搜索树上的边 前向边:与 DFS 方向一致,从某个结点指向其某个子孙的边 后向边:与 DFS 方向相反,从某个结点指向其某个祖先的边 横叉边:从某个结点指向搜索树中另一子
阅读全文 »
发表于 2018-08-02 16:30阅读:169评论:0推荐:0
摘要:poj2186tarjan算法缩点求出度 自己打一遍第一题,入门啦,入门啦 题目还算简单,多头牛,给你仰慕关系(可传递),问你最后有没有牛被所有的牛仰慕 根据关系可以建图,利用tarjan算法缩点处理后,得到有向无环图,缩成的点都是相互仰慕的,所以根据传递性也就是可以看成一个点了,然后染色分块,计算
阅读全文 »
发表于 2018-08-02 14:39阅读:225评论:0推荐:0
摘要:POJ3177tarjan缩点_构建双连通图 根据题意利用tarjan算法进行缩点处理后变成连通无环图,也可以说是一颗树,而且边是双向的所以,如果把这个图变成双连通,那就要对所有度为1的点进行加边处理 所以步骤如下 1·tarjan缩点处理 void tarjan(int u,int pre) {
阅读全文 »
发表于 2018-08-02 10:47阅读:163评论:0推荐:0
摘要:poj 1523Tarjan算法的含义——求取割点可以分出的连通分量的个数 题目大意:如题目所示 给你一些关系图——连通图,想要问你有没有个节点,损坏后,可以生成几个互相独立的网络(也就是连通分量),所以我们利用tarjan算法,求取一个联通分量的点,记录次数,因为访问几次,就代表这个点的不同方向上
阅读全文 »
发表于 2018-08-01 19:56阅读:463评论:0推荐:0
摘要:1.桥:是存在于无向图中的这样的一条边,如果去掉这一条边,那么整张无向图会分为两部分,这样的一条边称为桥 也就是说 无向连通图中,如果删除某边后,图变成不连通,则称该边为桥 2.割点:无向连通图中,如果删除某点后,图变成不连通,则称该点为割点。 求取割点: 1》当前节点为树根的时候,条件是“要有多余
阅读全文 »
发表于 2018-08-01 09:02阅读:253评论:0推荐:0
摘要:正常spfa中加入time数组,循环判断一个点是否入队并更新了n次以上注意是 > n!!其余的没有什么问题 扩展的还有,寻找所有负环上的点,这个可以在spfa中time 发现负环的时候,对那个点进行dfs操作,找到所有的负环上的点即可 void dfs(int u) { cir[u] = 1; fo
阅读全文 »