前言

这道题我一看是个简单,直接上来就是从最高位开始模拟,使用贪心算法。结果不通过,其实这道题不仔细观察会掉坑里。

解题思路:

1. 从 N 的高位开始遍历,因为我们只要保证前面最大化就能保证这个数是最大的。

1. A 和 B 都能保证数字最大化,那么我们就将这两种可能性保存下来

2. 只有A 或者 B 能保证数字最大化,那么直接使用这个数即可

代码实现:

递归

from math import infIn = input().split()
num, A, B = In[0], int(In[1]), int(In[2])
ans = -infdef dfs(num, A, B, idx):global ansif idx > len(num) - 1:returnk1 = k2 = int(num[idx])cnt1 = 9 - k1 if A >= 9 - k1 else Acnt2 = k2 + 1 if B >= k2 + 1 else 0ans1 = num[:idx] + str(k1 + cnt1) + num[idx + 1:]ans2 = num[:idx] + str(9) + num[idx + 1:] if cnt2 != 0 else numans = max(ans, int(ans1), int(ans2))dfs(ans1, A - cnt1, B, idx + 1)dfs(ans2, A, B - cnt2, idx + 1)dfs(num, A, B, 0)
print(ans)

队列

# 队列写法
from math import inf
from collections import dequeIn = input().split()
num, A, B = In[0], int(In[1]), int(In[2])
ans = -infq = deque()
q.append((num, A, B))# 从高位遍历 num 下标
for idx in range(len(num)):result = deque()while q:N, A, B = q.pop()k1, k2 = int(N[idx]), int(N[idx])cnt1 = 9 - k1 if A >= 9 - k1 else Acnt2 = k2 + 1 if B >= k2 + 1 else 0ans1 = N[:idx] + str(k1 + cnt1) + N[idx + 1:]ans2 = N[:idx] + str(9) + N[idx + 1:] if cnt2 != 0 else Nans = max(ans, int(ans1), int(ans2))# 因为当 A 和 B 都能选的时候会导致后续的不确定性,所以将两种可能都保存result.append((ans1, A - cnt1, B))result.append((ans2, A, B - cnt2))q = result
print(ans)

这两种写法我更偏向于队列,因为可读性更高

总结:

实现的算法不是最好的,还可以进行优化。

读题不够认真导致 wa 了4次,最后才完成。

蓝桥杯 2022 国赛 《最大数字》相关推荐

  1. 题解动态规划:蓝桥杯2022国赛B组 题解 A题目

    在这组题(蓝桥杯C/C++ B组 国赛)里面挑了几道喜欢的题目,做了一下,笔记思路如下.(其实是我觉得能做出的题 ) 题目图片来源于:CSDN 罚时大师月色 A:2022 [题目大意] 请问2022, ...

  2. 蓝桥杯嵌入式国赛模块训练之数码管

    文章目录 前言 一.电路原理图 1.共阴极数码管 2.SN74LS595N 3. 扩展板跳线帽连接 二.驱动代码 1.seg.h 2.seg.c 总结 前言 数码管是蓝桥杯嵌入式国赛需准备的第一个模块 ...

  3. 跑酷游戏-第13届蓝桥杯Scratch国赛真题第3题

    [导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第27讲. 第13届蓝桥杯青少年组国赛于2022年5月29日举行,形式为在线考试.Scrat ...

  4. 魔法师盖城墙-第11届蓝桥杯Scratch国赛真题第4题

    本文同步发表于"超平的编程课"公众号,更多教程,可移步至公众号. [导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第10 ...

  5. 密室逃脱-第12届蓝桥杯Scratch国赛真题第5题

    本文转自于"超平的编程课"公众号,查看更多教程,可以移步至公众号. [导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第3 ...

  6. 存钱罐-第12届蓝桥杯Scratch国赛真题第3题

    本文转自于"超平的编程课"公众号,更多教程,可移步至公众号. [导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第5讲. ...

  7. 3D打印小猫-第11届蓝桥杯Scratch国赛真题第6题

    本文同步发表于"超平的编程课"公众号,更多教程,可移步至公众号. [导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第8讲 ...

  8. 镜像画笔-第13届蓝桥杯Scratch国赛真题第2题

    [导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第28讲. 第13届蓝桥杯青少年组国赛于2022年5月29日举行,形式为在线考试.Scrat ...

  9. 蓝桥杯 2015国赛 四阶幻方

    蓝桥杯 2015国赛 四阶幻方 题目链接 题目描述 把1~16的数字填入4x4的方格中,使得行.列以及两个对角线的和都相等,满足这样的特征时称为:四阶幻方. 四阶幻方可能有很多方案.如果固定左上角为1 ...

最新文章

  1. 2022-2028年中国钢筘行业市场研究及前瞻分析报告
  2. 《因果学习周刊》第9期:因果学习中的工具变量
  3. RSA 加解密算法详解
  4. 阿里巴巴Java开发规约IDEA插件安装及使用
  5. c++同一屏幕输出多种颜色字体
  6. [iPhone高级] 基于XMPP的IOS聊天客户端程序(IOS端二)
  7. (六)构建优化(揭开webpack性能优化的内幕)
  8. HDU1283 最简单的计算机【模拟】
  9. lt form gt 在html,HTML lt;formgt; 标签的 accept
  10. javaScript通用数据类型校验2
  11. mac html编辑器 免费,Mac下 10 款最棒的编辑器
  12. AD6.8_mcu123 分享地址
  13. 数据库实例: STOREBOOK 用户
  14. linux读取.data文件,Android获取文件夹路径 /data/data/
  15. iphone4s上市时间_iPhone 4S才是真正意义上的王者, 网友: 现在依旧能打
  16. 在巨人的肩上:开源GIS工程大全索引
  17. linux系统时间与网络时间不同步
  18. WebGame服务端架构分析(一)
  19. oppo小布机器人_OPPO小布助手2.0强势来袭 三大版块迎来重大升级
  20. 比夏洛克还厉害:人工智能开始协助警方破案

热门文章

  1. 华为网络设备维护手册
  2. 非线性尾部相关模型|Copula
  3. VB编写简易动态按钮控件
  4. 【开关电源】LLC在学习路上疑惑和答案
  5. 泛世纪上英语,计算机,日语的录制课程。欢迎来下载
  6. Shell自动化管理账号脚本
  7. 厉害了!中国农历算法
  8. 【身份证识别】基于形态学实现ID号码识别系统matlab源码含GUI
  9. 一文搞定vim,从安装到入门到精通,助你成功入门vim
  10. 基于PHP+MySQL菜品食谱美食网站的设计与实现