7.公约移动

7.公约移动 - 蓝桥云课 (lanqiao.cn)
问题描述
小蓝站在一个n行m列的方格图中间,方格图的每一个方格上都标有一个正整数。
如果两个相邻方格(上下左右四个方向相邻)内的数的最大公约数大于1,则可以从其中一个方格移动到另一个方格,当然也可以从另一个方格移回第一个方格。
假设小蓝开始时站在第r行第c列,请问小蓝可以移动到广格图内的多少个方格?
输入格式
输入的第一行包含两个整数n,m,用一个空格分隔,表示方格图的行数和列数。
接下来n行,每行包含m个正整数,相邻整数间用一个空格分隔,依次表示方格图中从第1行到第n行,每行从第1列到第m列中的数。
接下来一行包含两个整数r,c,用一个空格分隔,表示小蓝所在的行号和列号。
输出格式
输出一行包含一个整数,表示答案

import os
import sys

# 请在此输入您的代码
n,m=map(int,input().split())
num=[]
for i in range(n):
  n1=list(map(int,input().split()))
  num.append(n1)
r,c=map(int,input().split())
flag=[[-1]*m for _ in range(n)]  #标记走过的路,-1表示没走过
direction=[(1,0),(-1,0),(0,1),(0,-1)]

def gcb(a,b):  #求最大公约数
  if a%b==0:
    return b
  else:
    return gcb(b,a%b)

def dfs(x,y):
  count=1   #开始位置
  ans=[(x,y)]  #保存可以走的坐标
  flag[x][y]=1 
  while len(ans):
    tx,ty=ans.pop()
    for d in direction:
      dx=tx+d[0]
      dy=ty+d[1]
      if 0<=dx<n and 0<=dy<m:
        if flag[dx][dy]==-1 and gcb(num[tx][ty],num[dx][dy])>1:
          count+=1
          ans.append((dx,dy))
          flag[dx][dy]=1
  return count

print(dfs(r-1,c-1))  #r,c是行列,坐标索引从0开始,要减去1

相关推荐

  1. 7.公约移动

    2024-04-02 02:26:01       12 阅读
  2. PTA:7-109 公园门票-zzuli

    2024-04-02 02:26:01       16 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-02 02:26:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-02 02:26:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-02 02:26:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-02 02:26:01       20 阅读

热门阅读

  1. (less) calc运算为什么不生效? 变量如何使用?

    2024-04-02 02:26:01       12 阅读
  2. 纯css 实现div 或者 图片一大一小的过渡动画

    2024-04-02 02:26:01       13 阅读
  3. LeetCode //C - 436. Find Right Interval

    2024-04-02 02:26:01       14 阅读
  4. Windows下配深度学习环境

    2024-04-02 02:26:01       15 阅读
  5. docker入门

    2024-04-02 02:26:01       15 阅读
  6. python中线程与协程

    2024-04-02 02:26:01       16 阅读
  7. 微信小程序中实现埋点的方法

    2024-04-02 02:26:01       17 阅读
  8. Azure入门实践-如何创建两个虚拟网络的对等连接

    2024-04-02 02:26:01       19 阅读
  9. C++ 学习10大网站推荐(Bjarne Stroustrup)

    2024-04-02 02:26:01       18 阅读
  10. 二分查找算法刷题记录 -LC34

    2024-04-02 02:26:01       13 阅读
  11. Linux 服务service(一)

    2024-04-02 02:26:01       17 阅读
  12. Nginx: proxy_set_header 与 add_header 区别

    2024-04-02 02:26:01       16 阅读