P5731
https://www.luogu.com.cn/problem/P5731
这道题被标为红题,真实难度应该介于红题和橙题之间,问题在于我高估了它的难度,以为至少有橙题的难度,一般不打表的我毫不犹豫选择了用dfs解决此题,倒也没用太多时间,也完全正确,只不过做完题后打开题解发现只要用四五个while就能解决这个问题,我这完全是杀鸡用牛刀了。
提醒自己下次别上来就想着dfs;
Code
#include<iostream>
#include<cstdio>
#include<string>
#include<vector>
#include<algorithm>
#include<cstdlib>
#include<cmath>
using namespace std;
int m[15][15];
void dfs(int x,int y,char t,int step)
{
	m[x][y]=step;
	if(t=='r')
	{
		if(m[x][y+1]==0)
			dfs(x,y+1,t,step+1);
		else if(m[x+1][y]==0)
			dfs(x+1,y,'d',step+1);
	}
	if(t=='d')
	{
		if(m[x+1][y]==0)
			dfs(x+1,y,t,step+1);
		else if(m[x][y-1]==0)
			dfs(x,y-1,'l',step+1);
	}
	if(t=='l')
	{
		if(m[x][y-1]==0)
			dfs(x,y-1,'l',step+1);
		else if(m[x-1][y]==0)
			dfs(x-1,y,'u',step+1);
	}
	if(t=='u')
	{
		if(m[x-1][y]==0)
			dfs(x-1,y,t,step+1);
		else if(m[x][y+1]==0)
			dfs(x,y+1,'r',step+1);
	}
}
int main()
{
	int n;
    cin>>n;
    for(int i=0;i<=14;i++)
    	for(int j=0;j<=14;j++)
    		m[i][j]=-1;
    for(int i=1;i<=n;i++)
    	for(int j=1;j<=n;j++)
			m[i][j]=0;
    dfs(1,1,'r',1);
    for(int i=1;i<=n;i++)
    {
    	for(int j=1;j<=n;j++)
    	{
    		if(m[i][j]<10) cout<<' ';
			cout<<' '<<m[i][j];
		}
		cout<<endl;
	}
    return 0;
}
												
											P5731的更多相关文章
- P5731 蛇形方阵
		
P5731 [深基5.习6]蛇形方阵 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) //为什么用动态二维数组 --->To play to user's input, but ...
 - 【LGR-(-8)】洛谷入门赛 #5    题解
		
比赛链接 9道题. 注:题目名称中链接为题目链接,题号中链接为比赛内链接 题目编号 洛谷题号 题目名称 题目难度 A P5713 [深基3.例5]洛谷团队系统 \(\color{red}{入门}\) ...
 
随机推荐
- MongoDB入门级别教程全(Windows版,保姆级教程)
			
下载mongodb 进入官网: Download MongoDB Community Server | MongoDB 选择msi,Windows版本 下载完后直接双击: 选择complete 这里建 ...
 - Django笔记四十四之Nginx+uWSGI部署Django以及Nginx负载均衡操作
			
本文首发于公众号:Hunter后端 原文链接:Django笔记四十四之Nginx+uWSGI部署Django以及Nginx负载均衡操作 这一篇笔记介绍如何使用 Nginx + uWSGI 来部署 Dj ...
 - [cnn]FashionMINST训练+保存模型+调用模型判断给定图片
			
import torch import torch.nn as nn import torch.nn.functional as F import torch.optim as optim impor ...
 - LeetCode1806:还原排列的最少操作步数(置换群 or 模拟)
			
题意:题目的意思是,给定一个初始状态perm,然后对perm的每个元素按照上述的规则进行变换操作.问:perm经过多少次这种操作能够变回初始的perm. 解题思路:第一种方法就是模拟,一直变换,直到变 ...
 - 万界星空科技MES系统中的生产调度流程
			
MES系统生产调度的目标是达到作业有序.协调.可控和高效的运行效果,作业计划的快速生成以及面向生产扰动事件的快速响应处理是生产调度系统的核心和关键. 为了顺利生成作业计划,需要为调度系统提供完整的 ...
 - Python——第四章:内置函数(下)
			
内置函数的使用方法: locals:函数会以字典的类型返回当前位置的所有局部变量 globals:函数会以字典的类型返回全部局部变量 zip: 可以把多个可迭代内容进行合并 sorted: 排序 fi ...
 - Linux-LVM 磁盘扩容
			
LVM技术详解:视频1.视频2.视频3 安装lvm2后才支持如下命令 yum install -y lvm2 序号 功能 PV物理卷命令 VG卷组命令 LV逻辑卷命令 01 扫描功能 pvscan v ...
 - electron入门之配置镜像加速(四)
			
electron入门到入土,配置阿里镜像加速.为了防止后面我们打包龟速,需要给electron配置阿里镜像加速 在下面的文件内添加阿里镜像加速,你的文件位置不一定是这个 C:\Program File ...
 - python 之 LDAP 用户统一认证登录
			
pip install ldap3 # 环境安装 from ldap3 import Server, Connection,SUBTREE ldap_host = 'xx.xx.x.x' #ldap服 ...
 - Java面试必考:什么是字节码?采用字节码的好处?
			
Java面试必考:什么是字节码?采用字节码的好处? 于哥你好,最近在java面试中被问答到什么是字节码?采用字节码的好处是什么?瞬间懵了,如果你连这个都不知道,我保证你面试GG! 首先说下Java的优 ...