题解P1783 海滩防御 分析 首先看题目发现这是一个连通性问题,就是在某个半径下一些塔的控制范围有重叠部分,两塔有重叠就说明它们连成了一片,同理若某塔控制了海滩边缘,这一侧边缘也与它相连,海滩受保护当且仅当左右摊联通,显然这是一个满足二分的东西,半径越大可连的边单调不降,但我们并不需要二分,只需要...
}e[maxn*maxn];structNode{doublex,y; }a[maxn];boolcmp(node a,node b){returna.w<b.w; }intfind(intx){if(fa[x]==x)returnx;returnfa[x]=find(fa[x]); }doublegetdis(inti,intj){returnsqrt((a[i].x-a[j].x)*(a[i].x-a[j].x)+(a[i].y-a[j].y)*(a[i].y-a[j]...
题解P1783 海滩防御 分析 首先看题目发现这是一个连通性问题,就是在某个半径下一些塔的控制范围有重叠部分,两塔有重叠就说明它们连成了一片,同理若某塔控制了海滩边缘,这一侧边缘也与它相连,海滩受保护当且仅当左右摊联通,显然这是一个满足二分的东西,半径越大可连的边单调不降,但我们并不需要二分,只需要...
P1783 海滩防御 题目描述 WLP同学最近迷上了一款网络联机对战游戏(终于知道为毛JOHNKRAM每天刷洛谷效率那么低了),但是他却为了这个游戏很苦恼,因为他在海边的造船厂和仓库总是被敌方派人偷袭。于是,WLP动用了他那丰满且充实的大脑(或许更偏向前者),想出了一个好主意,他把海滩分成垂直于海岸线的若干列,在其中的几...
题意: 给定长度为N的海滩,然后有M做防御塔,给出每座塔的位置Xi,到海岸的距离Yi。 求防御塔上最小观测半径Ri,使得海滩被封锁。 思路:要使左边界和右边界连通。 很nice,可以二分+并查集做。 可以最小生成树做。 可以最短路做。 MST代码: View Code ...
【luogu P1783 海滩防御】 题解 题目链接:https://www.luogu.org/problemnew/show/P1783 先把题目改造一下:题目所求是要一条能从0列到n列的路径,使其路径上的最大边长一半最小。 为什么是一半呢? 考虑半径这个东西,假如两个点之间距离为d,半径分别为r1,r2。需满足r1 + r2 >= d...
P1783 海滩防御 jisoo 简单的二分 #include<iostream> #include<cstdio> #include<algorithm> #include<cmath> #include<cstring> usingnamespacestd; intn,m; structpo{ intx; inty; }p[1005]; intx,y; intr[1005]; boolcmp(pox,poj){...
[题解]P1783 海滩防御 Description 链接Luogu 题目描述 WLP同学最近迷上了一款网络联机对战游戏(终于知道为毛JOHNKRAM每天刷洛谷效率那么低了),但是他却为了这个游戏很苦恼,因为他在海边的造船厂和仓库总是被敌方派人偷袭。于是,WLP动用了他那丰满且充实的大脑(或许更偏向前者),想出了一个好主意,他把海滩分成垂直...
洛谷P1783海滩防御 题目 跟奶酪那道题差不多,用并查集来求解。 用二分,或可以用类似于克鲁斯卡尔算法的贪心来每次判断是否起点和终点已经并在一个集合里(类似奶酪) 如果已经覆盖就结束判断并得出答案:即当前选择的边的最大值。 为什么是边的最大值呢。
这题刚开始很多人会想到二分,二分答案,然后看看是否能绕过所有信号塔,但是,这样写明显超时,对于任何一个点,要找到离它最近的信号塔需要O(n)的时间,再乘上M*L(L=海滩的长度)不超时才怪呢。 这一题的本质就是封锁海滩,即用信号塔的工作范围将两边的边界连在一起。所以,这题就是求一条从第0列到第n列的...