
连通块数
发布日期:2021-05-07 06:58:31
浏览次数:29
分类:精选文章
本文共 1534 字,大约阅读时间需要 5 分钟。
连通块数
题目链接:
题目大意
有一个三维的立方体,我们说两个相邻的方块是同一个颜色当两个方块的值的绝对值小于 m m m。
然后问你这个立方体有多少个连通块。思路
这道题就爆搜。
每一个方块都看做一个点
先把一个方块相邻的方块都看一遍,如果是同一个颜色,就两个方框对应的点连边。 然后最后爆搜有多少个图中连通块,就是答案了。代码
#include#include using namespace std;struct node { int to, nxt;}e[750010];int l, w, h, a[51][51][51], m, le[125010], KK, ans, in[125010];int dx[6] = { 1, -1, 0, 0, 0, 0}, dy[6] = { 0, 0, 1, -1, 0, 0}, dz[6] = { 0, 0, 0, 0, 1, -1};bool ch(int x, int y, int z) { if (x < 1 || x > l) return 0; if (y < 1 || y > w) return 0; if (z < 1 || z > h) return 0; return 1;}int getnum(int x, int y, int z) { return (x - 1) * w * h + (y - 1) * h + z;}void add(int x, int y) { e[++KK] = (node){ y, le[x]}; le[x] = KK;}void dfs(int now, int op) { in[now] = op; for (int i = le[now]; i; i = e[i].nxt) if (!in[e[i].to]) dfs(e[i].to, op);}int main() { // freopen("engineer.in", "r", stdin);// freopen("engineer.out", "w", stdout); scanf("%d %d %d", &l, &w, &h); scanf("%d", &m); for (int i = 1; i <= l; i++) for (int j = 1; j <= w; j++) for (int k = 1; k <= h; k++) scanf("%d", &a[i][j][k]); for (int i = 1; i <= l; i++) for (int j = 1; j <= w; j++) for (int k = 1; k <= h; k++) for (int s = 0; s < 6; s++) if (ch(i + dx[s], j + dy[s], k + dz[s]) && abs(a[i][j][k] - a[i + dx[s]][j + dy[s]][k + dz[s]]) <= m) add(getnum(i, j, k), getnum(i + dx[s], j + dy[s], k + dz[s])); for (int i = 1; i <= l * w * h; i++) if (!in[i]) { ans++; dfs(i, ans); } printf("%d", ans); fclose(stdin); fclose(stdout); return 0;}
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2025年03月31日 18时00分13秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
软件架构-zookeeper快速入门
2021-05-07
angr学习笔记(7)(malloc地址单元符号化)
2021-05-07
「CF149D」括号涂色 区间DP好题
2021-05-07
树状数组 模板总结
2021-05-07
「NOI2015」程序自动分析 并查集题解
2021-05-07
[JSOI2008]Blue Mary的战役地图 Hash题解
2021-05-07
结构型设计在工作中的一些经验总结
2021-05-07
如何提升员工体验 助力企业业务增长?这个棘手的问题终于被解决了!
2021-05-07
2020 AI 产业图谱启动,勾勒中国 AI 技术与行业生态
2021-05-07
Netty4服务端入门代码示例
2021-05-07
MyBatis自定义类型转换器
2021-05-07
Python:面向对象
2021-05-07
Spring源码:prepareBeanFactory(beanFactory);方法
2021-05-07
AcWing 828. 模拟栈
2021-05-07
(20200328已解决)从docker容器内复制文件到宿主机
2021-05-07
理解Docker ulimit参数
2021-05-07
OpenAI Gym简介及初级实例
2021-05-07
int 转 CString
2021-05-07
Edit编辑框自动换行与长度
2021-05-07
Java面向对象
2021-05-07