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

dfs之卒的遍历

题面

题目描述

在一张n×m 的棋盘上(如 6 行 7 列)的最左上角(1,1) 的位置有一个卒。该卒只能向下或者向右走,且卒采取的策略是先向下下边走到头就向右,请问从(1,1) 点走到 (n,m) 点可以怎样走,输出这些走法。

输入

两个整数n,m 代表棋盘大小(3≤n≤8,3≤m≤8)

输出

卒的行走路线。

样例

输入

复制

3 3

输出

复制

1:1,1->2,1->3,1->3,2->3,3
2:1,1->2,1->2,2->3,2->3,3
3:1,1->2,1->2,2->2,3->3,3
4:1,1->1,2->2,2->3,2->3,3
5:1,1->1,2->2,2->2,3->3,3
6:1,1->1,2->1,3->2,3->3,3

 链接

先深搜到终点输出在return回去

解法一:函数包含三个参数X,Y,K 

#include <bits/stdc++.h>
using namespace std;
int n , m , c = 0 , r[20][3];
int fx[3] = {0 , 1 , 0} , fy[3] = {0 , 0 , 1};
void print(int k){c++;printf("%d:" , c);for ( int i = 1 ; i < k ; i++ )printf("%d,%d->" ,  r[i][1] , r[i][2]);printf("%d,%d" , n , m);printf("\n");
}
void dfs( int x , int y , int k){r[k][1] = x;r[k][2] = y;if(x == n && y == m){print(k);return;}int tx , ty;for ( int i = 1 ; i <= 2 ; i++ ){tx = x + fx[i];ty = y + fy[i];if(tx >= 1 && tx <= n && ty >= 1 && ty <= m )dfs(tx , ty , k+1);}
}
int main(){scanf("%d%d" , &n , &m);dfs(1,1,1);return 0;
}

解法二:直接用r数组里存的元素

#include <bits/stdc++.h>
using namespace std;
int n , m , c = 0 , r[20][3];
int fx[3] = {0 , 1 , 0} , fy[3] = {0 , 0 , 1};
void print(int k){c++;printf("%d:" , c);for ( int i = 1 ; i < k ; i++ )printf("%d,%d->" ,  r[i][1] , r[i][2]);printf("%d,%d" , n , m);printf("\n");
}
void dfs(int k){int tx , ty;for ( int i = 1 ; i <= 2 ; i++ ){tx = r[k-1][1] + fx[i];ty = r[k-1][2] + fy[i];if(tx >= 1 && tx <= n && ty >= 1 && ty <= m ){r[k][1] = tx;r[k][2] = ty;if(tx == n && ty == m) print(k);else dfs(k+1);}}
}
int main(){scanf("%d%d" , &n , &m);r[1][1] = 1;r[1][2] = 1;dfs(2);return 0;
}

 

http://www.lryc.cn/news/114167.html

相关文章:

  • Springboot整合activiti5,达梦数据库,mybatis中间件
  • 使用Python + Flask搭建web服务
  • Winform 打开文件夹、文件、拖拽上传
  • 热评国内AI四小龙:此一时彼一时,彼此彼此
  • [国产MCU]-BL602开发实例-GPIO控制
  • Firefox 配置 Burp_proxy 和 证书
  • 基于Java+SpringBoot+Vue前后端分离仓库管理系统详细设计和实现
  • PyTorch Lightning教程七:可视化
  • 后端开发2.mongdb的集成
  • Unity面板究极优化
  • C# App.config和Web.config加密
  • 力扣:50. Pow(x, n)(Python3)
  • scikit-plot 使用笔记
  • 2024考研408-计算机网络 第五章-传输层学习笔记
  • 【JS】一道解构面试题
  • 24v转3.3v输出3A用什么芯片
  • 在Linux中安装lrzsz(yum命令使用)
  • 机器学习基础08-回归算法矩阵分析(基于波士顿房价(Boston House Price)数据集)
  • [英语单词] password, passphrase, passport.... paraphrase
  • windows(iis)服务器部署安装wordpress(php)网站教程
  • ETCD备份还原
  • 探索CSS计数器:优雅管理网页元素的计数与序号
  • 这次一次性通关channel!
  • 线程数控制
  • DC-6靶机
  • SpringCloud入门Day01-服务注册与发现、服务通信、负载均衡与算法
  • java-IDEA MAVEN查看依赖树,解决jar包重复和冲突
  • 参考RabbitMQ实现一个消息队列
  • SpringBoot+JWT
  • Cad二次开发EqualPoint