当前位置: 首页 > news >正文

用织梦做网站视频网页美工设计时色彩搭配的注意事项

用织梦做网站视频,网页美工设计时色彩搭配的注意事项,小程序定制公司排行十名,网站运维主要做些什么工作题目描述 小杨同学用不同种类的俄罗斯方块填满了一个大小为 n m n \times m nm 的网格图。 网格图由 n m n \times m nm 个带颜色方块构成。小杨同学现在将这个网格图交给了你,请你计算出网格图中俄罗斯方块的种类数。 如果两个同色方块是四连通(即…

题目描述

小杨同学用不同种类的俄罗斯方块填满了一个大小为 n × m n \times m n×m 的网格图。

网格图由 n × m n \times m n×m 个带颜色方块构成。小杨同学现在将这个网格图交给了你,请你计算出网格图中俄罗斯方块的种类数。
如果两个同色方块是四连通(即上下左右四个相邻的位置)的,则称两个同色方块直接连通;若两个同色方块同时与另一个同色方块直接或间接连通,则称两个同色方块间接连通。一个俄罗斯方块由一个方块和所有与其直接或间接连接的同色方块组成。定义两个俄罗斯方块的种类相同当且仅当通过平移其中一个俄罗斯方块可以和另一个俄罗斯方块重合;如果两个俄罗斯方块颜色不同,仍然视为同一种俄罗斯方块。

例如,在如下情况中,方块 1 1 1 和方块 2 2 2 是同一种俄罗斯方块,而方块 1 1 1 和方块 3 3 3 不是同一种俄罗斯方块。

输入格式

第一行包含两个正整数 n n n m m m,表示网格图的大小。
对于之后的 n n n 行,第 i i i 行包含 m m m 个正整数 a i 1 , a i 2 , … a i m a_{i1}, a_{i2}, \dots a_{im} ai1,ai2,aim,表示该行 m m m 个方块的颜色。

输出格式

输出一行一个整数表示答案。

输入输出样例 #1

输入 #1

5 6
1 2 3 4 4 5
1 2 3 3 4 5
1 2 2 3 4 5
1 6 6 7 7 8
6 6 7 7 8 8

输出 #1

7

说明/提示

子任务分数 n , m ≤ n,m \leq n,m特殊约定
1 1 1 30 30 30 20 20 20所有俄罗斯方块大小不超过 5 × 5 5 \times 5 5×5
2 2 2 30 30 30 500 500 500所有俄罗斯方块大小均为 1 × x 1 \times x 1×x x × 1 x \times 1 x×1 类型,其中 x x x 是任意正整数
3 3 3 40 40 40 500 500 500

对全部的测试数据,保证 1 ≤ n , m ≤ 500 1 \leq n, m \leq 500 1n,m500 1 ≤ a i , j ≤ n × m 1 \leq a_{i,j} \leq n \times m 1ai,jn×m

solution

这道题本质是每一个小整体的中各小方块的相对位置是否相同,如果用固定的搜索顺序的话,每一个方块的搜索方向决定了相对位置。所以可以用搜索方向的方向序列表示唯一表示一种俄罗斯方块。但是需要注意的是,深度优先搜索过程中,某一个位置搜索完成后会回到上一层继续搜索,此时就会出现有可能的不唯一表示,比方说
序列1: 在 A 点处,向下搜索
序列2: 在 A 点处,递归结束,回到 B 点, B 点向下搜索。
可以在每一个点递归结束后添加一个标记即可。

代码

#include <iostream>
#include "bit"
#include "vector"
#include "unordered_set"
#include "set"
#include "queue"
#include "stack"
#include "algorithm"
#include "bitset"
#include "cstring"using namespace std;int col, sx, sy, m, n, mat[501][501];
int dx[] = {1, -1, 0, 0};
int dy[] = {0, 0, 1, -1};
bool vis[501][501];
string s;void dfs(int x, int y) {vis[x][y] = true;for (int i = 0; i < 4; i++) {int xx = x + dx[i];int yy = y + dy[i];if (xx >= 0 && x < m && yy >= 0 && yy < n && !vis[xx][yy] && mat[xx][yy] == col) {s.push_back(char(i + '0'));dfs(xx, yy);}}s.push_back('x');
}int main() {cin >> m >> n;for (int i = 0; i < m; i++) {for (int j = 0; j < n; j++) {cin >> mat[i][j];}}unordered_set<string> set;for (int i = 0; i < m; i++) {for (int j = 0; j < n; j++) {if (!vis[i][j]) {col = mat[i][j];s.clear();dfs(i, j);set.insert(s);}}}cout << set.size();
}

结果

在这里插入图片描述

http://www.dtcms.com/a/584097.html

相关文章:

  • 网站设计制作全网优惠中山企业推广网站制作
  • 用js做的网站代码吗成都网站关键词排名
  • python学习网站中式风格装修效果图
  • 杨中市网站建设网站建设优化一年赚几十万
  • 个人网站建站需要准备什么建设一个公司网站 需要钱吗
  • 自己做网站能赚到广告费吗大连百度关键词优化
  • asp艺术学校网站源码基于网站开发app
  • 公司网站自己可以做吗网站建设淘宝模板
  • thinkphp 企业网站网站建设狼盾网络
  • 网站开发技术发展趋势免费咨询承诺书
  • 网站建设 秦皇岛公司python的网站开发
  • 网站建设课程大纲wordpress快速发布
  • 建设网站用什么服务器wordpress 模版标签
  • 如何提升网站的权重佛山网站设计师
  • 网站管理包括手机百度网址是什么
  • 郑州东区网站建设如何做好互联网营销
  • 网站做的拖管不行 怎么投诉文山做网站
  • 自己做的网站验证码出不来怎么回事网页设计和网站建设是同一回事吗
  • 淄博市建设业协会网站软件设计师考试大纲
  • 重庆网站推广步骤在线制作图片动画效果
  • 删除西部数码网站管理助手网站建设公司该如何选择
  • 浙江建设厅网站 打不开建设厅网站装修合同模板
  • 一站式婚庆公司装修平台排行榜前十名
  • ae模板下载网站推荐软件项目管理心得
  • 商城网站框架信息流优化
  • 什么的网站策划wordpress 4.9 漏洞
  • 婚纱摄影网站源码2022年房地产太惨了
  • 浦东网站建设箱海运wordpress站点版权设置
  • 网站解析不了ui设计的网站
  • 租用服务器网站wordpress 双语主题