蓝桥杯国赛题目


CSDN 题解

  1. 美丽的 2
    遍历即可,然后使用 str 和 count 函数就可以查找数字是否含有 2
  2. 合数个数
    使用埃氏算法,就可以找到所有合数,然后使用 count 计算个数即可
    使用埃氏算法要小心一点,它是用于判断 n 以内的素数的,所以要注意是否需要加一。
  3. 阶乘约数
    使用唯一分解定理:
    一个大于 1 的正整数 N,如果它的标准分解式为 N=p1a1+p2a2+…+pnan,那么它的正因数为(a1+1)(a2+1)…(an+1),
    其中 pi 为素数(1 不为素数)
    我们首先将 2 到 100 中含有的素数找出来,然后存储在字典中,设置值为 1,然后由于 100 的阶乘太大了,我们从 2 开始到 100,分别用素数去尝试是否能够整除,可以的话就将字典对应的值加一,然后遍历字典的值,乘起来就是答案了。
  4. 本质上升序列
    我们使用动态规划求解该题,后面开始遍历
    我们先将字符串翻转,使用 nums 记录以该字母开头的所有组合,然后我们遍历数组,如果是‘z’的话,将 nums [-1]=1,否则我们 nums [idx]=sum (nums [idx+1:]+1, 意思就是与该字母后面的所有有效的字母开头进行组合,加一是因为自己一个也可以作为一个序列。
    最后我们 sum(nums)即得答案
  5. 玩具蛇
    使用深度优先遍历,设定 dfs 函数和 VIS 矩阵判断该点是否被访问过。如果被访问过就直接返回,没有则先判断长度是否已经足够,是的话直接计数器加一,返回,否则将该位置的访问位置置为 1,然后再向四个位置进行深度优先访问,全部完成后再将 VIS 矩阵对应位置置为 0(这一步很关键)。而且要注意在 Python 的子函数中加入 global 关键字修饰 ans 和 VIS 矩阵 global ans,vis; 然后遍历每个起点位置进行深度遍历即可。
  6. 天干地支
    使用数组存储天干和地支,推出第 0 个元素是什么后,然后天干使用与 10 取余,地支与 12 取余即可,然后使用该索引即可
  7. 重复字符串
    无法重复的情况只有一种:当字符串长度无法被 K 整除时。此时我们返回 - 1,其他情况我们直接根据 K 将其分组,然后在对应位置的统计元素个数,然后将其他不相同的元素改为出现次数最多的元素。使用这种贪心算法,我们就可以得到答案了。但是要注意 k=1 的时候直接将元素个数减去出现最多的元素出现个数即可。
  8. 答疑
    看上去很麻烦,但其实,只要存储(离开 - 进入,发信息 - 进入)两个信息,然后使用贪心算法即可。
  9. 补给
    不会
  10. 蓝跳跳
    不会

文章作者: xiqin
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 xiqin !
  目录