[POI2007]洪水pow bfs

发现:只在所有自己的城市建水泵一定是最优解。

所以对自己的城市按高度排序,该城市不用建的前提是从他出发经过一条高度都小于等于他的路径能到达一个已经修建水泵的

sort+bfs......

#include
#include
#include
#include
#include
#define N 1005
using namespace std;
int dx[4]={-1,1,0,0},dy[4]={0,0,-1,1};
int bo[N][N],num,n,m,NOW,exi[N][N];
int qx[N*N],qy[N*N],g[N][N],ans;
bool vis[N][N];
struct data{
	int x,y,h;
	bool operator < (const data &a)const{return h0)add(i,j,g[i][j]);
			else g[i][j]=-g[i][j];
		}
	sort(d+1,d+num+1);
	for(int i=1;i<=num;i++){
		if(!bfs(d[i].x,d[i].y))ans++;
		vis[d[i].x][d[i].y]=1;
	}
	printf("%d\n",ans);
	return 0;
}


转载于:https://www.cnblogs.com/Ren-Ivan/p/7746680.html

你可能感兴趣的:([POI2007]洪水pow bfs)