“二十一天好习惯”第一期-8

前言:

今天来分享下学到的蓝桥杯的一些答题技巧,方法叫做:手算法,看到这里很多人会以为什么是手算法,是不是掰指头拿手算有手就行?,非也,今天介绍的方法是结合蓝桥杯的竞赛环境中特有的工具来辅助我们,再通过简单用手操作,即可得到结果。话不多说,先看一题。

题目2:

X 星球的一处迷宫游乐场建在某个小山坡上。它是由 10 \times 1010×10 相互连通的小房间组成的。

房间的地板上写着一个很大的字母。我们假设玩家是面朝上坡的方向站立,则:

  • LL 表示走到左边的房间,
  • RR 表示走到右边的房间,
  • UU 表示走到上坡方向的房间,
  • DD 表示走到下坡方向的房间。

X 星球的居民有点懒,不愿意费力思考。他们更喜欢玩运气类的游戏。这个游戏也是如此!

开始的时候,直升机把 100100 名玩家放入一个个小房间内。玩家一定要按照地上的字母移动。

迷宫地图如下:

UDDLUULRUL
UURLLLRRRU
RRUURLDLRD
RUDDDDUUUU
URUDLLRRUU
DURLRLDLRL
ULLURLLRDU
RDLULLRDDD
UUDDUDUDLL
ULRDLUURRR

请你计算一下,最后,有多少玩家会走出迷宫,而不是在里边兜圈子

提示:

如果你还没明白游戏规则,可以参看下面一个简化的 4x4 迷宫的解说图:

图片描述

解析:

这道题是典型的 DFS,编码至少 10 分钟。不过因为是个填空题,而且迷宫很简单,只有 100 个字符,可以直接数,从左往右数,从上往下数,约 2 分钟就能数完。数出来的结果见下面,红色字符上的人能走出来。

UDDLUULRUL
UURLLLRRRU
RRUURLDLRD
RUDDDDUUUU
URUDLLRRUU
DURLRLDLRL
ULLURLLRDU
RDLULLRDDD
UUDDUDUDLL
ULRDLUURRR

题目2:

小蓝要为一条街的住户制作门牌号。

这条街一共有 20202020 位住户,门牌号从 11 到 20202020 编号。

小蓝制作门牌的方法是先制作 00 到 99 这几个数字字符,最后根据需要将字符粘贴到门牌上,例如门牌 1017 需要依次粘贴字符 1、0、1、71、0、1、7,即需要 11 个字符 00,22 个字符 11,11 个字符 77。

请问要制作所有的 11 到 20202020 号门牌,总共需要多少个字符 22?

解题思路:

这确实是个送分题,编码也很简单:判断每个数字中有几个 2,然后把所有数字中 2 的个数加起来。编码大概 5 分钟。

但是有更简单的做法:先编码打印出 1~2020 这 2020 个数字。

#include<bits/stdc++.h>
using namespace std;
int main(){
  int k=0;
  for(int i=1;i<=2020;i++)
     cout<<i;
}

然后,将输出结果粘贴到编辑器中(比赛时可以选择:Word、Codeblocks 都行)中,选搜索功能,搜索字符「2」,共搜索出结果 624 次,这就是答案

图片描述

小结:

这种不用编码的填空题称为手算题。

竞赛的时间极为紧张,应选用最快的实现方式。能节省几分钟就节省几分钟,更重要的是,如果能投机取巧尽快搞出答案,会让人感觉特别爽!然后带着愉快的心情开始做后面的难题。

每次比赛都有「送分题」,只需要几分钟就能做出来。特别是部分填空题,只需要填答案,不用提交代码,那么可以用包括编码在内的多种方法。

今天的手算法先讲到这里,后续会补充,如有错误,还请大家指正。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值