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

发帖软件广州seo团队

发帖软件,广州seo团队,移动端企业网站,模板建房多少钱一平方题目描述 小蓝正在和朋友们玩一种新的连连看游戏。在一个 n m 的矩形网格中,每个格子中都有一个整数,第 i 行第 j 列上的整数为 Ai, j 。玩家需要在这个网格中寻找一对格子 (a, b) − (c, d) 使得这两个格子中的整数 Aa,b 和 Ac,d 相等,且它…

题目描述

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

输入格式

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

接下来 n 行,第 i 行包含 m 个正整数 Ai,1, Ai,2, · · · , Ai,m ,相邻整数之间使用一个空格分隔。

输出格式

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

样例输入

3 2
1 2
2 3
3 2

样例输出

6

样例说明

样例说明

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

解题思路

先分析一下题意,题目要求的是:①两个数相等;②坐标满足|a − c| = |b − d| > 0。什么意思呢?就是说要让两个点所在的横坐标之差的绝对值与纵坐标之差绝对值相等。那我们对式子变一下型其实可以发现(以a-c=b-d=k>0来看,a=c+k,b=d+k),要找的数是处于对角线上的。来看一下图

 

有如图所示的两种情况。

我们以中间那个数为例:分别判断它左上角,右上角,左下角,右下角的数与它是否相等,如果相等的话,那么就增加答案的个数。

但是根据样例说明以及我们的分析其实可以发现,将两个数交换位置其实也算是一组答案。 

我们还是举例来看,如果中间那个数和它左上角那个数相等,那么答案就加1,那交换之后的个数是怎么计入的?其实遍历到它左上角那个数的时候,判断它的右下角的数(即中间那个数)的时候,也对答案加1了。

由此我们的思路就是,遍历矩阵当中的每一个数,然后判断它左上角,右上角,左下角,右下角的数是否和它相等即可。

代码实现

import java.io.*;public class Main {public static void main(String[] args) throws IOException {Scanner scan=new Scanner(System.in);int n=scan.nextInt();int m=scan.nextInt();int ans=0;int [][]grid=new int[n][m];for(int i=0;i<n;i++) {for(int j=0;j<m;j++) {grid[i][j]=scan.nextInt();}}//一个个检查for(int i=0;i<n;i++) {for(int j=0;j<m;j++) {ans+=check(grid,i,j,n,m);}}System.out.println(ans);}private static int check(int[][] grid, int i, int j, int n, int m) {int count=0;int value=grid[i][j];//检查右下角for(int k=1;i+k<n&&j+k<m;k++) {if(grid[i+k][j+k]==value)count++;}//检查左下角for(int k=1;i+k<n&&j-k>=0;k++) {if(grid[i+k][j-k]==value)count++;}//检查右上角for(int k=1;i-k>=0&&j+k<m;k++) {if(grid[i-k][j+k]==value)count++;}//检查左上角for(int k=1;i-k>=0&&j-k>=0;k++) {if(grid[i-k][j-k]==value)count++;}return count;}
}class Scanner {private BufferedReader bf;private StreamTokenizer st;public Scanner(InputStream inputStream) {this.bf = new BufferedReader(new InputStreamReader(inputStream));this.st = new StreamTokenizer(bf);}public int nextInt() throws IOException {st.nextToken();return (int)st.nval;}public String nextLine() throws IOException {return bf.readLine();}
}

http://www.dtcms.com/wzjs/82270.html

相关文章:

  • wordpress 用户登录ip记录信阳网站seo
  • 衡水网站建设供应商广告优化师发展前景
  • 二维码解码器生成短网址seo关键词优化软件合作
  • 公司网站自己可以做吗东莞seo网站推广建设
  • 龙江建网站google谷歌搜索
  • 做网站需要的语言网店推广联盟
  • 长沙做暑假实践活动网站怎么下载需要会员的网站视频
  • muse怎么做响应式网站色盲测试图第六版
  • wordpress 反应慢西安百度seo
  • 怎么看一个网站是由哪个网络公司做的seo搜论坛
  • 志愿服务网站建设方案软文新闻发布平台
  • 管理咨询的主体包括哪些seo优化网页
  • 网站制作需要学多久合肥seo整站优化
  • 网站左侧的导航是怎么做的优化
  • 宜宾做网站网站seo优化总结
  • 做网站需要看啥书长沙seo网络营销推广
  • 楚雄网站开发企业微信scrm
  • b2c网站系统规划报告江门百度seo公司
  • 天津做公司网站东莞seo建站
  • 枣阳市市城乡建设委员会网站宁波seo优化外包公司
  • python做直播网站如何设计企业网站
  • 网站开发服务合同属于什么合同排名函数rank怎么用
  • 建网站哪便宜厦门人才网官网招聘
  • 网站接入服务提供单位网站关键词快速排名优化
  • 网站栏目划分怎么做广州百度搜索优化
  • 支付网站建设费入什么科目免费申请网站
  • 松山湖网站建设微信推广方式有哪些
  • 网页设计制作与代码整体素材网络优化是做什么的
  • 无毒一级床上做視频黄色网站提高seo排名
  • 有没有只做软装方案收设计费的网站外链工厂 外链