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的更多相关文章

  1. P5731 蛇形方阵

    P5731 [深基5.习6]蛇形方阵 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) //为什么用动态二维数组 --->To play to user's input, but ...

  2. 【LGR-(-8)】洛谷入门赛 #5 题解

    比赛链接 9道题. 注:题目名称中链接为题目链接,题号中链接为比赛内链接 题目编号 洛谷题号 题目名称 题目难度 A P5713 [深基3.例5]洛谷团队系统 \(\color{red}{入门}\) ...

随机推荐

  1. [ABC299F] Square Subsequence

    Problem Statement You are given a string $S$ consisting of lowercase English letters. Print the numb ...

  2. 实现 Raft 协议

    文章地址 简介 Raft 是一个分布式共识算法,用于保证所有机器对一件事达成一个看法.本文用于记录实现 Raft 选举和日志复制的代码细节. 选举 节点启动时首先是跟随者状态,如果到达选举超时时间就尝 ...

  3. bash shell笔记整理——cat命令

    cat命令的作用 简单来说cat命令用于查看文件内容,但是真正来说cat将给定的文件或者标准输入输出到标准输出中. 这个命令时会经常使用到的,不管是在shell脚本的编写还是linux运维测试中,ca ...

  4. 华企盾DSC可能造成系统蓝屏奔溃常见处理方法

    1.蓝屏先卸载我们DSC客户端检测是否是我们影响的 2.如果是我们影响的查到版本说明是否有处理过 3.是否有一些不常用的杀毒软件卸载试试 4.如果使用一些USB驱动类的先把USB的注册表改一下试试 5 ...

  5. 一个ssh无法远程登录的问题跟踪解决

    用户反馈龙芯服务器系统loongnix-server使用root用户ssh远程登录,有时候可以有时候又无法登录,频繁出现错误:Permission denied,please try again.我分 ...

  6. ASR项目实战-决策点

    针对语音识别的产品,分别记录设计.开发过程中的决策点. 实时语音识别 对于实时语音识别来说,客户端和服务端之间实时交换语音数据和识别的结果. 客户端在启动识别时,即开始发送语音数据,期望在等待较短的时 ...

  7. ajax与thymeleaf分别实现数据传输

    小杰笔记篇: 1:第一种:利用Model和thymeleaf引擎来完成: Controller层: @CrossOrigin//解决跨域问题 @Controller public class User ...

  8. springboot-jpa获取session

    springboot获取hibernate的session进行更精细的SQL操作,默认的jpa并不能满足一些复杂需求(可能是我把需求设计复杂了) 通过查看JpaRepository的底层实现,发现是通 ...

  9. Redis 的主从复制

    Redis 主从复制是指:将一台 Redis 服务器的数据复制到其它的 Redis 服务器,前者所在的 Redis 服务器也被称为 "主节点"(Master / Leader),后 ...

  10. 一些Mybatis的知识点&易错点总结

    1.映射文件配置容易出错 在映射文件中,我们习惯性在sql语句后面添加';'. 结果是报了一堆错误: org.apache.ibatis.exceptions.PersistenceException ...