P5731 【深基5.习6】蛇形方阵 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

这道题就是纯纯找规律的模拟题,但是在比赛或者思维比较松散的情况下紧张的时候会想不出模拟思路

这时候如果测试数据的范围比较小,如本题的数据最大就到九阶方阵,所以可以手算出每一种类型打表输出,不用去考虑一般规律

当然数据范围比较大的时候还是得怪怪找规律-_-&

这里贴上我的找出规律的代码以及题解中的打表代码

 1 #include<stdio.h>
2 #include<stdlib.h>
3 #include<string.h>
4 int Num[10][10];
5 int n;
6 int NotBeyound(int H, int L)//判断是否出界,否返回1
7 {
8 if ((H >= 1 && H <= n) && (L >= 1) && (L <= n))
9 return 1;
10 else
11 return 0;
12 }
13 int main()
14 {
15 scanf("%d", &n);
16 int H = 1, L = 1;
17 int Flag = 2;//状态标记,1左2右3上4下,初始向右
18 Num[1][1] = 1;
19 int N = 2;
20 while (N <= n*n)
21 {
22 if (Flag == 2)//初始向右
23 {
24 if (Num[H][L + 1] == 0 && NotBeyound(H, L+1))
25 Num[H][++L] = N++;
26 else
27 Flag = 4;
28 }
29 if (Flag == 4)
30 {
31 if (Num[H + 1][L] == 0 && NotBeyound(H + 1, L))
32 Num[++H][L] = N++;
33 else
34 Flag = 1;
35 }
36 if (Flag == 1)
37 {
38 if (Num[H][L - 1] == 0 && NotBeyound(H, L - 1))
39 Num[H][--L] = N++;
40 else
41 Flag = 3;
42 }
43 if (Flag == 3)
44 {
45 if (Num[H - 1][L] == 0 && NotBeyound(H - 1, L))
46 Num[--H][L] = N++;
47 else
48 Flag = 2;
49 }
50 }
51 for (int i = 1; i <= n; i++)
52 {
53 for (int j = 1; j <= n; j++)
54 {
55 printf("%3d", Num[i][j]);
56 }
57 printf("\n");
58 }
59 return 0;
60 }

打表代码如下

#include <bits/stdc++.h>
using namespace std;
int n;
int main () {
cin >> n;
if(n == 1)
cout << " 1\n";
if(n == 2)
cout <<" 1 2\n 4 3\n";
if(n == 3) {
cout << " 1 2 3\n";
cout << " 8 9 4\n";
cout << " 7 6 5\n";
}
if(n == 4) {
cout << " 1 2 3 4\n";
cout << " 12 13 14 5\n";
cout << " 11 15 16 6\n";
cout << " 10 9 8 7\n";
}
if(n == 5) {
cout << " 1 2 3 4 5\n";
cout << " 16 17 18 19 6\n";
cout << " 15 24 25 20 7\n";
cout << " 14 23 22 21 8\n";
cout << " 13 12 11 10 9\n";
}
if(n == 6) {
cout << " 1 2 3 4 5 6\n";
cout << " 20 21 22 23 24 7\n";
cout << " 19 32 33 34 25 8\n" ;
cout << " 18 31 36 35 26 9\n";
cout << " 17 30 29 28 27 10\n";
cout << " 16 15 14 13 12 11\n";
}
if(n == 7) {
cout << " 1 2 3 4 5 6 7\n";
cout << " 24 25 26 27 28 29 8\n";
cout << " 23 40 41 42 43 30 9\n";
cout << " 22 39 48 49 44 31 10\n";
cout << " 21 38 47 46 45 32 11\n";
cout << " 20 37 36 35 34 33 12\n";
cout << " 19 18 17 16 15 14 13\n";
}
if(n == 8) {
cout << " 1 2 3 4 5 6 7 8\n";
cout << " 28 29 30 31 32 33 34 9\n";
cout << " 27 48 49 50 51 52 35 10\n";
cout << " 26 47 60 61 62 53 36 11\n";
cout << " 25 46 59 64 63 54 37 12\n";
cout << " 24 45 58 57 56 55 38 13\n";
cout << " 23 44 43 42 41 40 39 14\n";
cout << " 22 21 20 19 18 17 16 15\n";
}
if(n == 9) {
cout << " 1 2 3 4 5 6 7 8 9\n";
cout << " 32 33 34 35 36 37 38 39 10\n";
cout << " 31 56 57 58 59 60 61 40 11\n";
cout << " 30 55 72 73 74 75 62 41 12\n";
cout << " 29 54 71 80 81 76 63 42 13\n";
cout << " 28 53 70 79 78 77 64 43 14\n";
cout << " 27 52 69 68 67 66 65 44 15\n";
cout << " 26 51 50 49 48 47 46 45 16\n";
cout << " 25 24 23 22 21 20 19 18 17\n";
}
return 0;
}

对未来的自己的一个提醒。关于打表答题的思路,洛谷P5731的更多相关文章

  1. 洛谷 P2253 好一个一中腰鼓! 题解

    P2253 好一个一中腰鼓! 题目背景 话说我大一中的运动会就要来了,据本班同学剧透(其实早就知道了),我萌萌的初二年将要表演腰鼓[喷],这个无厘头的题目便由此而来. Ivan乱入:"忽一人 ...

  2. 用原生js实现一个页面乘法口诀表

    今天我自己用js实现了一个页面乘法口诀表(如图)来共享给大家,做的不是很好,如果大家有新的想法可以跟我交流哦. 代码如下: <!doctype html><html lang=&qu ...

  3. OD学习笔记10:一个VB程序的加密和解密思路

    前边,我们的例子中既有VC++开发的程序,也有Delphi开发的程序,今天我们给大家分析一个VB程序的加密和解密思路. Virtual BASIC是由早期DOS时代的BASIC语言发展而来的可视化编程 ...

  4. asp.net使用post方式action到另一个页面,在另一个页面接受form表单的值!(报错,已解决!)

    原文:asp.net使用post方式action到另一个页面,在另一个页面接受form表单的值!(报错,已解决!) 我想用post的方式把一个页面表单的值,传到另一个页面.当我点击Default.as ...

  5. 一个洛谷Material化的Stylish美化主题

    Luogu Argon Design 新主题 Luogu Argon Design 目前已经取代了 Luogu Material,但这并不代表 Luogu Material 会停止更新,在 Luogu ...

  6. 【存储过程】用SQL语句获得一个存储过程返回的表

    定义一个存储过程如下: create proc [dbo].[test1] @id int as select 1 as id,'abc' as name union all select @id a ...

  7. Oracle中的自连接(self join)-当表中的某一个字段与这个表中另外字段的相关时,我们可能用到自连接。

    http://blog.163.com/wkyuyang_001/blog/static/10802122820091751049479/ 当表中的某一个字段与这个表中另外字段的相关时,我们可能用到自 ...

  8. ApexSQL Recover 恢复一个被drop的表的数据

    没有备份的情况下恢复一个被drop的表的数据 ApexSQL Recover 恢复一个被drop的表的数据 转自:https://solutioncenter.apexsql.com/zh/%E6%B ...

  9. 将任意一个jQuery对象进行表单序列化,免除了提交请求时大量拼写表单数据的烦恼,支持键值对<name&value>格式和JSON格式。

    http://zhengxinlong.iteye.com/blog/848712 将任意一个jQuery对象进行表单序列化,免除了提交请求时大量拼写表单数据的烦恼,支持键值对<name& ...

  10. [Swift通天遁地]二、表格表单-(9)快速创建一个美观强大的表单

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

随机推荐

  1. shell 脚本之 disk_monitor

    编写脚本实现监测指定文件夹的磁盘空间.   =========================================================== ## 脚本逻辑介绍 用户通过 --p ...

  2. 每天学五分钟 Liunx 010 | ssh

    Liunx ssh known_hosts   known_hosts是做服务器认证的.当用 ssh 连接到一个新的服务器的时候,ssh 会让你确认服务器的信息(域名.IP.公钥),如果你确认了,就会 ...

  3. UPF - Power Intent Basic

    Mainstream Low Power techniques Low Vth - 阈值电压比较低,翻转时间小,漏电流比较大,功耗大,速度快 High Vth - 阈值电压比较高,翻转时间长,漏电流比 ...

  4. ffmpeg 字幕解码

    原文: https://blog.csdn.net/u011283226/article/details/102241233 [写在前面] 在前一篇,我已经讲过了读取外挂字幕并显示的方法:理解过滤图并 ...

  5. [转帖]k8s(1.28.2)部署ingress-nginx-controller(1.9.0)

    1.部署ingress-nginx-controller 继在三台虚拟机部署k8s后,需要部署ingress-nginx-controller,才能使设置的ingress规则生效. 1.1下载yaml ...

  6. [转帖]NVIDIA超级AI服务器NVIDIA DGX GH200性能介绍

    https://zhuanlan.zhihu.com/p/633219396 2023 年 5 月 28 日NVIDIA宣布推出 NVIDIA DGX GH200,这是首款 100 TB级别的GPU ...

  7. [转帖]echo “新密码”|passwd --stdin 用户名

    https://www.cnblogs.com/rusking/p/6912809.html --stdin This option is used to indicate that passwd s ...

  8. [转帖]jmeter之foreach循环控制器-03篇

    上篇我们通过正则表达式获取到了一组数据,那么怎么来用呢?下面就用foreach控制器来使用结果,如下图所示 然后再foreach控制器里添加要循环的请求,我们模拟百度搜索,value填入${id} 然 ...

  9. [转帖]OS Watcher (OSW)系统性能监控软件

    https://www.anbob.com/archives/1143.html OS Watcher简称OSW(oswbb),用于收集并归档操作系统cpu,memery,disk io,networ ...

  10. [转帖]ls命令

    ls(list) 命令可以说是Linux下最常用的命令之一 #ls -l;列出文件的详细信息 #ll 以上两个命令一样,ll是ls -l的简写 #ls -al;列出目录下的所有文件,包括以 . 开头的 ...