[POI2007]洪水pow 并查集】的更多相关文章

我们先得出一个结论:水泵要建在城市上.因为如果在非城市上建能把其他一些城市抽干,那么在城市上建也是一个效果(自己画图感性理解一下) 然后我们明白抽水的条件:周围的高度要>=自身的高度,这样会抽完它.如果低的话,会降低旁边位置的水位(这很重要) 然后我们枚举每一个城市,看它用不用建造.这样在每一个城市,枚举所有位置,看这个位置能不能被四周的抽干,这样用并查集维护,能抽干的都是一个祖先 这样枚举完一遍后,看这个城市所连的并查集有没有被抽干,如果没有,就在那里建造即可 #include<iostre…
[POI2007]洪水pow 时间限制: 5 Sec  内存限制: 128 MB 题目描述 AKD市处在一个四面环山的谷地里.最近一场大暴雨引发了洪水,AKD市全被水淹没了.Blue Mary,AKD市的市长,召集了他的所有顾问(包括你)参加一个紧急会议.经过细致的商议之后,会议决定,调集若干巨型抽水机,将它们放在某些被水淹的区域,而后抽干洪水.你手头有一张AKD市的地图.这张地图是边长为m*n的矩形,被划分为m*n个1*1的小正方形.对于每个小正方形,地图上已经标注了它的海拔高度以及它是否是A…
题目传送门 pow 题意翻译 Description 你手头有一张该市的地图.这张地图是边长为 m∗n 的矩形,被划分为m∗n个1∗1的小正方形.对于每个小正方形,地图上已经标注了它的海拔高度以及它是否是该市的一个组成部分.地图上的所有部分都被水淹没了.并且,由于这张地图描绘的地面周围都被高山所环绕,洪水不可能自动向外排出.显然,我们没有必要抽干那些非该市的区域. 每个巨型抽水机可以被放在任何一个1∗1正方形上.这些巨型抽水机将持续地抽水直到这个正方形区域里的水被彻底抽干为止.当然,由连通器原理…
#include <iostream> #include <cstdio> #include <cmath> #include <cstring> #include <algorithm> #define maxn 1005 #define maxm 1000005 using namespace std; int m,n,ans,hi[maxm],fa[maxm],now[maxn],prep[maxm],bo[maxm]; bool colo…
Description AKD市处在一个四面环山的谷地里.最近一场大暴雨引发了洪水,AKD市全被水淹没了.Blue Mary,AKD市的市长,召集了他的所有顾问(包括你)参加一个紧急会议.经过细致的商议之后,会议决定,调集若干巨型抽水机,将它们放在某些被水淹的区域,而后抽干洪水.你手头有一张AKD市的地图.这张地图是边长为\(m\times n\)的矩形,被划分为\(m\times n\)个\(1\times 1\)的小正方形.对于每个小正方形,地图上已经标注了它的海拔高度以及它是否是AKD市的…
题意 给一个\(n * m(1 \le n, m \le 1000)\)的矩阵,如果\(a_{i, j}\)为正表示城市.\(|a_{i, j}|(|a_{i, j}| \le 1000)\)是格子\((i, j)\)的海拔.现在需要放最少的抽水机,使得把所有城市的水都抽干.自行脑部抽水机是怎么工作的. 分析 容易发现: 存在最优解使得抽水机都放在城市中. 一定是从海拔低的城市开始放. 题解 根据传递性,在\((i, j)\)放了抽水机,如果上下左右有海拔比自己高的(或等于),则那个格子也相当于…
发现:只在所有自己的城市建水泵一定是最优解. 所以对自己的城市按高度排序,该城市不用建的前提是从他出发经过一条高度都小于等于他的路径能到达一个已经修建水泵的 sort+bfs...... #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<cmath> #define N 1005 using namespace std; int d…
BZOJ 1104 [POI2007]洪水 描述 AKD 市处在一个四面环山的谷地里.最近一场大暴雨引发了洪水,AKD 市全被水淹没了.Blue Mary,AKD 市的市长,召集了他的所有顾问(包括你)参加一个紧急会议.经过细致的商议之后,会议决定,调集若干巨型抽水机,将它们放在某些被水淹的区域,而后抽干洪水. 你手头有一张 AKD 市的地图.这张地图是边长为 mn 的矩形,被划分为 mn个 11 的小正方形.对于每个小正方形,地图上已经标注了它的海拔高度以及它是否是 AKD 市的一个组成部分.…
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1098 [题目大意] 现在有一张图,要求将这张图的点划分为尽量多的分组,对于不同分组的两个点 要求必须存在连边. [题解] 不同分组之间的两点必须连边等价于没有连边的点一定在同一分组内, 所以题目转化为求反图的连通块和其大小,搜索的理论复杂度O(n^2),显然不行, bfs的时候对于已经归入其余连通块的点用并查集进行段无效信息处理,减少搜索树的分支, 显然经过这样的处理搜索分支的数量下…
题目链接: http://poj.org/problem?id=2236 题意: 有n台计算机, 已知每台计算机的坐标, 初始时所有计算机都是坏的, 然后修复其中一些计算机, 已修复的计算机距离不超过distance的可以联网(若a, b之间可以联网, b, c之间可以联网, 则a, c之间可以联网),询问x, y之间可否联网; 第一行输入n, distance, 表示有n台计算机, 联网的两台计算机距离不能超过distance; 接下来n分别表示n台计算机的坐标; 再接下来到输入结束, 输入格…