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}{入门}\) ...
随机推荐
- 使用 PyTorch FSDP 微调 Llama 2 70B
引言 通过本文,你将了解如何使用 PyTorch FSDP 及相关最佳实践微调 Llama 2 70B.在此过程中,我们主要会用到 Hugging Face Transformers.Accelera ...
- 快速入门:使用 .NET Aspire 组件实现缓存
前言 云原生应用程序通常需要各种类型的可扩展缓存解决方案来提高性能..NET Aspire 组件简化了连接到流行的缓存服务(例如 Redis)的过程,今天小编就为大家简单介绍一下如何使用 .NET A ...
- [NOI online2022提高B] 讨论
题目描述 有 \(n\) 个人正在打模拟赛,模拟赛有 \(n\) 道题目. 有两人都会的题目并且没有人会的题目包含另一个人时,两者之间才会讨论. (定义第 ii 个人会的题目的集合为 \(S_i\) ...
- Android辅助功能
1:AccessibilityService 新建service public class AccessibilityService extends android.accessibilityserv ...
- uniapp-welive仿微信/抖音直播带货|uni-app+vue3+pinia短视频直播商城
基于uniapp+vue3+uv-ui跨端H5+小程序+App短视频+直播带货商城Uniapp-WeLive. uni-welive一款全新基于uniapp+vue3+pinia+vk-uview等技 ...
- Codeforce Round 916(div3)
Codeforces Round 916(div3) [Problem - A - Codeforces]:Problemsolving Log A.题 直接看样例进行分析,发现每一次出现的字符代表着 ...
- ubuntu 之 安装mysql8
安装 1 wget https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb 2 sudo apt-get update sudo apt ...
- Mybatis源码4 Cache的实现和其原理
Mybatis CachingExecutor, 二级缓存,缓存的实现 一丶二级缓存概述 上一章节,我们知道mybaits在构造SqlSession的时候,需要让SqlSession持有一个执行器,如 ...
- 文心一言 VS 讯飞星火 VS chatgpt (53)-- 算法导论6.2 5题
五.MAX-HEAPIFY的代码效率较高,但第 10 行中的递归调用可能例外,它可能使某些编译器产生低效的代码.请用循环控制结构取代递归,重写 MAX-HEAPIFY代码. 文心一言: 以下是使用循环 ...
- LeetCode206反转链表、24两两交换节点
206. 反转链表 反转一个单链表. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL ...