BFS(染色) LA 3977 Summits
题意:题意坑爹。问符合条件的的山顶个数
分析:降序排序后从每个点出发,假设为山顶,如果四周的点的高度>h - d那么可以走,如果走到已经走过的点且染色信息(山顶高度)不匹配那么就不是山顶。重点在于就算知道不是山顶也要染色完。
#include <bits/stdc++.h>
using namespace std; const int N = 5e2 + 5;
const int INF = 0x3f3f3f3f; int h, w, d;
struct Point {
int x, y, z;
Point() {}
Point(int x, int y, int z) : x (x), y (y), z (z) {}
bool operator < (const Point &r) const {
return z > r.z;
}
};
int dx[4] = {-1, 1, 0, 0};
int dy[4] = {0, 0, -1, 1};
vector<Point> ps;
int mat[N][N];
int peak[N][N];
bool vis[N][N]; bool judge(int x, int y, int az) {
if (x < 1 || x > h || y < 1 || y > w || mat[x][y] <= az - d) return false;
else return true;
} int BFS(Point &a) {
if (vis[a.x][a.y]) return 0;
vis[a.x][a.y] = true; peak[a.x][a.y] = a.z;
int cnt = 1;
bool flag = true;
queue<Point> que; que.push (a);
while (!que.empty ()) {
Point r = que.front (); que.pop ();
for (int i=0; i<4; ++i) {
int tx = r.x + dx[i];
int ty = r.y + dy[i];
if (!judge (tx, ty, a.z)) continue;
if (vis[tx][ty]) {
if (peak[tx][ty] != a.z) {
flag = false;
}
continue;
}
vis[tx][ty] = true; peak[tx][ty] = a.z;
que.push (Point (tx, ty, mat[tx][ty]));
if (mat[tx][ty] == a.z) cnt++;
}
}
if (!flag) cnt = 0;
return cnt;
} int run(void) {
memset (vis, false, sizeof (vis));
memset (peak, 0, sizeof (peak));
int ret = 0;
for (int i=0; i<ps.size (); ++i) {
ret += BFS (ps[i]);
}
return ret;
} int main(void) {
int T; scanf ("%d", &T);
while (T--) {
scanf ("%d%d%d", &h, &w, &d);
ps.clear ();
for (int i=1; i<=h; ++i) {
for (int j=1; j<=w; ++j) {
scanf ("%d", &mat[i][j]);
ps.push_back (Point (i, j, mat[i][j]));
}
}
sort (ps.begin (), ps.end ());
printf ("%d\n", run ());
} return 0;
}
BFS(染色) LA 3977 Summits的更多相关文章
- UVALive 3977 BFS染色
这个题意搞了半天才搞明白 就是如果定义一个d-summit,即从该点到另一个更高的点,经过的路径必定是比当前点低至少d高度的,如果该点是最高点,没有比他更高的,就直接视为顶点 其实就是个BFS染色,先 ...
- HDU 2444 二分图判断 (BFS染色)+【匈牙利】
<题目链接> 题目大意: 有N个人,M组互相认识关系互相认识的两人分别为a,b,将所有人划分为两组,使同一组内任何两人互不认识,之后将两个组中互相认识的人安排在一个房间,如果出现单人的情况 ...
- 【Luogu】P1330封锁阳光大学(bfs染色)
题目链接 这题恶心死我了. bfs染色,统计每个联通块两色的个数,ans加它们的最小值. #include<cstdio> #include<cctype> #include& ...
- XMU 1617 刘备闯三国之汉中之战 【BFS+染色】
1617: 刘备闯三国之汉中之战 Time Limit: 1000 MS Memory Limit: 128 MBSubmit: 6 Solved: 5[Submit][Status][Web B ...
- UVALive - 3977 Summits (BFS染色)
题目大意:坑爹的题目.题意那么难理解. 讲的就是,假设该点是山顶的话(高度为h).那么以该点为中心,往外辐射.走高度大于h-d的点,到达不了还有一个比它高的点 这就提示了,高度要从大到小排序,依次以高 ...
- hdu4751Divide Groups(dfs枚举完全图集合或者bfs染色)
/************************************************************************* > File Name: j.cpp > ...
- Hdu 5285 wyh2000 and pupil (bfs染色判断奇环) (二分图匹配)
题目链接: BestCoder Round #48 ($) 1002 题目描述: n个小朋友要被分成两班,但是有些小朋友之间是不认得的,所以规定不能把不认识的小朋友分在一个班级里面,并且一班的人数要比 ...
- CF796D Police Stations BFS+染色
题意:给定一棵树,树上有一些点是警察局,要求所有点到最近的警察局的距离不大于 $d$,求最多能删几条边 ? 题解: 考虑什么时候一条边可以被断开:这条边的两个端点被两个不同的警察局覆盖掉. 我们要设计 ...
- CodeForces-598D(BFS,染色)
链接: https://vjudge.net/problem/CodeForces-598D 题意: Igor is in the museum and he wants to see as many ...
随机推荐
- Spring自动装配与扫描注解
1 javabean的自动装配 自动注入,减少xml文件的配置信息. <?xml version="1.0" encoding="UTF-8"?> ...
- 2048控制台程序:一份帝国理工C++作业
#include <fstream> #include <vector> #include <iostream> #include <string> u ...
- webstorm添加vue插件支持
现在已经有vue.js的插件啦,setting --> plugins 就可以咯 ------------------------------------------------ Mac端Web ...
- Java多线程---同步与锁
一,线程的同步是为了防止多个线程访问一个数据对象时,对数据造成的破坏. 二.同步和锁定 1.锁的原理 Java中每个对象都有一个内置锁. 当程序运行到非静态的synchronized同步方法上时,自动 ...
- WiFi基本知识
转自:http://blog.csdn.net/myarrow/article/details/7930131 1. IE802.11简介 标准号 IEEE 802.11b IEEE 802.11a ...
- Myeclipse 2016 & 2014 下载
myeclipse-2016-ci-6-offline-installer-windowshttps://downloads.genuitec.com/downloads/myeclipse/inst ...
- 攻城狮在路上(叁)Linux(十一)--- 用户与用户组、文件权限、目录配置
一.用户与用户组: 3个概念:文件所有者(user).用户组(group).其他人(others). /etc/passwd <==存放所有的用户名 /etc/shadow <==存放 ...
- 企业QQ 增加在线交谈链接
企业QQ的在线交流链接跟普通QQ的在线交流不一样,普通QQ的在线交流,可以在http://shang.qq.com/v3/widget.html生成:企业qq的链接可以按以下步骤添加: 第一步:引入企 ...
- 二叉搜索树的实现及指针问题的一点思考(C++)
今天实现二叉搜索树的时候因为指针的问题卡了一上午(实在不应该...),一直segmentation fault,个人感觉还是需要记录一下的. 首先贴一下做的题的意思: 输入一系列整数,建立二叉排序数, ...
- ASP.NET 5探险(5):利用AzureAD实现单点登录
题记:在ASP.NET 5中虽然继续可以沿用ASP.NET Identity来做验证授权,不过也可以很容易集成支持标准协议的第三方服务,比如Azure Active Directory. 其实,在AS ...