连连看(dfs)

问题描述

小蓝正在和朋友们玩一种新的连连看游戏。在一个 n×mn×m 的矩形网格中,每个格子中都有一个整数,第 ii 行第 jj 列上的整数为 Ai,jAi,j​ 。玩家需要在这个网格中寻找一对格子 (a,b)−(c,d)(a,b)−(c,d) 使得这两个格子中的整数 Aa,bAa,b​ 和 Ac,dAc,d​ 相等,且它们的位置满足 ∣a−c∣=∣b−d∣>0∣a−c∣=∣b−d∣>0 。请问在这个 n×mn×m 的矩形网格中有多少对这样的格子满足条件。

输入格式

输入的第一行包含两个正整数 n,mn,m,用一个空格分隔。

接下来 nn 行,第 ii 行包含 mm 个正整数 Ai,1,Ai,2,⋯,Ai,mAi,1​,Ai,2​,⋯,Ai,m​,相邻整数之间使用一个空格分隔。

输出格式

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

样例输入

复制代码
3 2
1 2
2 3
3 2

样例输出

复制代码
6

样例说明

一共有以下 66 对格子:(1,2)−(2,1)(1,2)−(2,1),(2,2)−(3,1)(2,2)−(3,1),(2,1)−(3,2)(2,1)−(3,2),(2,1)−(1,2)(2,1)−(1,2),(3,1)−(2,2)(3,1)−(2,2),(3,2)−(2,1)(3,2)−(2,1)。

java 复制代码
package com.cjh.lanqiao;

import java.util.Scanner;

import sun.net.www.content.audio.aiff;

//连连看
public class Main75 {
	static int[] xi = {1,1,-1,-1};
	static int[] yi = {1,-1,1,-1};
	static int n;
	static int m;
	static int ans = 0;
	static int[][] a;
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		n = scanner.nextInt(); m = scanner.nextInt();
		a = new int[n][m];
		for (int i = 0; i < n; i++) {
			for (int j = 0; j < m; j++) {
				a[i][j] = scanner.nextInt();
			}
		}
		for (int i = 0; i < n; i++) {
			for (int j = 0; j < m; j++) {
				dfs(i, j);
			}
		}
		System.out.println(ans);
	}

	private static void dfs(int x, int y) {
		for (int i = 0; i < 4; i++) {
			int nextX = x + xi[i];
			int nextY = y + yi[i];
			while(nextX<n && nextX>=0 && nextY<m && nextY>=0) {
				if (a[x][y]==a[nextX][nextY]) {
					ans++;
				}
				nextX = nextX + xi[i];
				nextY = nextY + yi[i];
			}
		}
		
		
	}
}
相关推荐
Old Uncle Tom12 小时前
OpenClaw 记忆系统 -- 记忆预加载
java·数据结构·算法·agent
会编程的土豆12 小时前
洛谷题单入门1 顺序结构
数据结构·算法·golang
生信碱移12 小时前
PACells:这个方法可以鉴定疾病/预后相关的重要细胞亚群,作者提供的代码流程可以学习起来了,甚至兼容转录组与 ATAC 两种数据类型!
人工智能·学习·算法·机器学习·数据挖掘·数据分析·r语言
智者知已应修善业12 小时前
【51单片机中的打飞机设计】2023-8-25
c++·经验分享·笔记·算法·51单片机
智者知已应修善业15 小时前
【51单片机按键调节占空比3位数码管显示】2023-8-24
c++·经验分享·笔记·算法·51单片机
.54815 小时前
## Sorting(排序算法)
python·算法·排序算法
wuweijianlove16 小时前
算法的平均复杂度建模与性能回归分析的技术7
算法·数据挖掘·回归
子琦啊16 小时前
【算法复习】字符串 | 两个底层直觉,吃透高频题
linux·运维·算法
code_pgf17 小时前
Octo 算法详解-开源通用机器人策略模型技术报告
算法·机器人·开源
嘻嘻哈哈樱桃17 小时前
牛客经典101题题解集--动态规划
java·数据结构·python·算法·职场和发展·动态规划