标题: ARTS Week 4

分类: ARTS

tags: ARTS

Nov 18, 2019 ~ Nov 24, 2019

Algorithm

深入优先搜索-马遍历棋盘

要求:给定一个n * m的棋盘,左上角为(0, 0),马的初始位置为(x, y),找到所有方案使得马不重复地遍历棋盘,输出所有方案

思路

马走‘日’字,因此有八种移动方案,分别为:

dir = [[-2,1], [-1,2], [1,2], [2,1], [2,-1], [1,-2], [-1,-2], [-2,-1]]

坐标(x, y)移动一步后的结果为(x+dir[i][0], y+dir[i][1])

马的移动需要受到以下两个条件的约束:

  1. 移动后的点仍要在棋盘上,即

    $ 0 \leq x+dir[i][0] \leq n-1 \(
    \) 0 \leq y+dir[i][1] \leq m-1 $
  2. 移动后的点是要为访问过的,即

    $ visited[x+dir[i][0]][y+dir[i][1]] $

实现

Python的实现代码如下:

def draw():
print('第', ans,'种方案:',history) def horse(x, y, step):
if step == num:
global ans, found
ans = ans + 1
found = True
draw()
else:
for i in range(8):
x_temp = x + dir[i][0]
y_temp = y + dir[i][1]
if 0 <= x_temp < n and 0 <= y_temp < m and visited[x_temp][y_temp] == 0:
history[step] = [x_temp, y_temp]
visited[x_temp][y_temp] = 1
horse(x_temp, y_temp, step+1)
visited[x_temp][y_temp] = 0

Review

Emacs is Sexy

文章介绍的Emacs好处和安装Emacs

  1. Why
  1. 安装
  1. 学习

    阅读自带的教程Ctrl+h t或者查看手绘图

    中文教程可以查看子龙山人的教程,链接

希望能开箱即用的用户,可以采用Spacemacs。至于 Spacemacs 如何安装,可以看我的这篇文章:Spacemacs 简单介绍及安装

Tips

python3 输入一行数字中间用空格相隔的读取方法,例如:s = '1 2 3 4 5',如何提取为数组 nums = [1,2,3,4,5]

#方法1
num = [int(n) for n in input().split()] #方法二
num = list(map(int, input().strip().split())) print(num)

Share

Spacemacs 简单介绍及安装

最新文章

  1. 【Java并发系列04】线程锁synchronized和Lock和volatile和Condition
  2. 基于Deep Learning 的视频识别方法概览
  3. antmate.css
  4. 从resfful API设计到加密算法
  5. SPSS数据分析—广义估计方程
  6. jquery验证手机号码和固定电话号码
  7. BZOJ3322 : [Scoi2013]摩托车交易
  8. ubuntu 14.04 https 形式安装docker 私有库 harbor
  9. PHP使用1个crontab管理多个crontab任务
  10. 2014多校第一场J题 || HDU 4870 Rating(DP || 高斯消元)
  11. 开源的连接池技术DBCP和C3P0
  12. Jenkins master在windows
  13. Java基础(6)- 面向对象解析
  14. 【端-iOS】给iOS开发入门者编码的一点建议
  15. 如何改变XCode的默认设置
  16. Nginx failing to load CSS and JS files (MIME type error)
  17. 【CSS/JS】如何实现单行/多行文本溢出的省略(...)--老司机绕过坑道的正确姿势
  18. py-day3-4 python 匿名函数
  19. 如何在ubuntu系统里面用新加装的硬盘对系统进行扩容
  20. Java技术栈

热门文章

  1. Java 多线程与并发(六):AQS
  2. Win10下设置默认输入法与默认中文输入
  3. VS从标准输入读入文件
  4. Numpy常用方法及应用总汇
  5. 2020 年了,Java 日志框架到底哪个性能好?——技术选型篇
  6. Spark 配置参数
  7. DbCommand :执行超时已过期。完成操作之前已超时或服务器未响应。
  8. 一文带你看清HTTP所有概念
  9. OA系统、ERP系统、CRM系统的区别和联系有哪些?企业该如何使用?
  10. 5、python基本数据类型之数值类型