题目意思是求起点s到终点s的最短路,但是只能在圆的内部和边上走。一种可以想到的方法就是求出所有的交点,然后两两连边并验证合法性,但是这样的交点数规模有n2。 我们可以观察发现,我们在圆求并构成的图形中,在其内部的点是不可能成为最短路上的点,只可能是沿着边上的点擦着经过,所以我们需要把在圆内部的所有点 ...
分类:
其他好文 时间:
2019-10-04 16:41:44
阅读次数:
88
naipc 2019 这道题需要用到扫描线的思想。 首先我们用结构体存东西,存的是矩形的上下边 也就是我们每读入一对坐标,就有 b[++tot]={x1,x2,y1,-1}下面一条 b[++tot]={x1,x2,y2,1}上面一条 然后我们还要根据这个y从小到大排序这样下来,就可以看作以下画面 那 ...
分类:
其他好文 时间:
2019-10-03 23:46:52
阅读次数:
143
1.哈希算法、哈希表和KMP(Done) 2.平衡树Treap(Done) 3.悬线法优化DP:https://wenku.baidu.com/view/bc8311f69e314332396893f7.html(Done) 4.线段树的高级应用:节点维护邻接矩阵/区间取模计数/扫描线 线段树 5. ...
分类:
其他好文 时间:
2019-10-03 21:35:29
阅读次数:
102
建议移步 "fsy的博客" 讲的比较清楚 注意判一下边界条件 丢个板 cpp include define int long long define N (300000 + 10) using namespace std; inline void read(int &cnt) { cnt = 0; ...
分类:
其他好文 时间:
2019-09-30 23:20:15
阅读次数:
67
算法简介 扫描线算法用于求许多矩形的面积并。 算法流程 基本思想 对于一堆矩形,我们从下往上用一根水平的直线扫过去,把面积一块一块扫出来。从最下面一条矩形横边开始,每一块矩形面积,为直线扫到此处被矩形覆盖的长度乘以该直线到下一条横边的高度差。这个很好理解,看图说话: 思想就很简单易懂。 实现? 如何 ...
分类:
其他好文 时间:
2019-09-28 18:20:42
阅读次数:
92
题目链接:https://nanti.jisuanke.com/t/41298 扫描线的简单题,题目难在找宫殿的价值(°ー°〃),比赛时将近100多行代码找价值,纯模拟,看到题解哭了。 存下每个宫殿的横坐标、价值,存下每个矩形平行于y轴的两条边,左边的那个边要特殊处理,就是横坐标减一。线段树维护y坐 ...
分类:
其他好文 时间:
2019-09-16 00:05:04
阅读次数:
78
HDU - 5741 我们枚举段的起点和终点, 那么每一种情况0的范围是[lx, rx], 1的出现范围是[ly, ry], 可以在二维平面上用矩形表示。 然后问题就变成了询问点有没有被至少一个矩形覆盖, 扫描线 + 树状数组就可以了。 ...
分类:
编程语言 时间:
2019-09-13 17:55:09
阅读次数:
79
HDU - 5770 没想出来, 感觉不应该啊, 没有想到转换成二维上的点的问题。 对于对钥匙和宝藏(u, v), 如果lca != u && lca != v 那么起点从u子树出发, 终点在v子树就能得到贡献。 子树在dfs序下是连续一段, 所以就对应到二维平面一个矩形加上一个数值, 求值最大的点 ...
分类:
其他好文 时间:
2019-09-12 16:30:39
阅读次数:
93
题目链接:https://www.luogu.org/problem/P1502 P1502 窗口的星星 提交2.78k 通过682 时间限制1.00s 内存限制125.00MB 提交代码加入收藏 P1502 窗口的星星 提交2.78k 通过682 时间限制1.00s 内存限制125.00MB 提交 ...
分类:
其他好文 时间:
2019-09-11 09:43:17
阅读次数:
138
题意:给定N个点,然后给定一个半径为R的圆,问这个圆最多覆盖多少个点。 思路:在圆弧上求扫描线。 hihocoder1508的代码。 ...
分类:
其他好文 时间:
2019-09-07 12:45:18
阅读次数:
91