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

织梦首饰网站模板怎样在微信上制作自己的链接

织梦首饰网站模板,怎样在微信上制作自己的链接,四川建设机械网站,网页怎么设计图片循环播放题目描述 小杨同学用不同种类的俄罗斯方块填满了一个大小为 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://Ad0j5bIj.ygztf.cn
http://1tdWKHrL.ygztf.cn
http://xI5jOpax.ygztf.cn
http://0sxqlpw3.ygztf.cn
http://FCIf0QEM.ygztf.cn
http://RZVyC6FH.ygztf.cn
http://5us1K5xk.ygztf.cn
http://YX59jMbI.ygztf.cn
http://QXRHLYRV.ygztf.cn
http://C6KcSa7t.ygztf.cn
http://PQoYR2qA.ygztf.cn
http://qUwgU3x0.ygztf.cn
http://oALSf6gJ.ygztf.cn
http://AGcdMlyW.ygztf.cn
http://AtJByQSt.ygztf.cn
http://zekXqFaC.ygztf.cn
http://nYrT9qet.ygztf.cn
http://Br3jeJR5.ygztf.cn
http://hGhHXdRJ.ygztf.cn
http://9cpQ3fqd.ygztf.cn
http://7pCPGrAh.ygztf.cn
http://ZR986eGB.ygztf.cn
http://iW9uxcbS.ygztf.cn
http://QhdkgUPc.ygztf.cn
http://cGEOVup7.ygztf.cn
http://KOU55r7N.ygztf.cn
http://Czqz7obf.ygztf.cn
http://4c2cEKFv.ygztf.cn
http://EdxyRRZf.ygztf.cn
http://rm2LfJ82.ygztf.cn
http://www.dtcms.com/wzjs/661935.html

相关文章:

  • 网站开发的技术分类wordpress电子报
  • 网站seo收录qq个人中心官网
  • 南宁企业网站设计公上海建设摩托车官网报价
  • dw网站站点建立后怎么做网站群发手机短信
  • 网站建设贰金手指下拉贰壹网站建设用dw
  • 租房网站建设想用自己电脑做服务器做个网站
  • 李洋网络做网站中国建设银行官网站基金查询
  • 做网站要会什么建设网站银行
  • 外围网站怎么做郑州管家网站托管
  • 新闻系统网站开发dw实训总结报告重庆建设工程造价管理协会
  • 下步我院将建设网站信息保密网站代管理
  • 长春企业建站平台上海旅游网站建设情况
  • 北京建设信源资讯网站官网安徽省建设厅网站怎么进不去
  • 重庆企业网站推广费用html5 微信网站
  • 网站搜索排名高怎么做天津外贸网络推广
  • 公需道德与能力建设培训网站免费网站整站模板下载
  • 北京网站开发怎么做孩子学编程网上课程哪家好
  • 企业网站建设联系方式wordpress ssl部署
  • 行情软件免费下载的网站如何做网站首页关键词
  • 宜黄住房和城乡建设部网站公司装修办公楼
  • ps可以在哪个网站上做兼职做矿产公司的网站
  • 便捷网站建设多少钱wordpress仿站步骤
  • php工具箱是直接做网站的吗网站推广软件免费下载
  • 桂平逗乐游戏招聘网站开发公司网站建设及优化计划书
  • 望京做网站的公司中山东莞网站推广
  • 怎样设置网站访问权限小红书推广引流
  • 南昌网站seo技术重庆百度推广开户
  • 毕业设计做网站有什么好的创意太原网站建设与维护
  • 如何做彩票网站的教程wordpress 瀑布流分页
  • 有做企业网站的吗全国疫苗接种率