当前位置: 首页 > news >正文

题目 2694: 蓝桥杯2022年第十三届决赛真题-最大数字【暴力解法】

最大数字

原题链接

🥰提交结果

在这里插入图片描述

思路

  • 对于每一位,我我们都要尽力到达 9

    所以我们去遍历每一位, 如果是 9 直接跳过这一位

    如果可以上调9 我们将这一位上调到 9 ,并且在a 中减去对应的次数

    同样的,如果可以下调9,我们将这一位下调到 9,并且在b中减去对应的次数

    如果上调和下调的次数都不够,就按找能加就加的原则

    ​ 例如:3->9 a=1 b=1

    • 3想要到达9上调的次数不足以使他到达9,同样下调也不行,这个时候,全加上就可以了,同时别忘记扣除对应次数。

这里要注意,并不是上调或下调到9的次数小就选次数少的,两种选法是不一定的:

  • 3327621916603411 7 9

    对于这个测试用例,每一位就可以存在两种操作,上调或者下调,两种都要试一遍,最后取得最大值是答案。(如果不考虑加和减的顺序,最后测试点通过情况只能拿97分亲身实践!)

在这里插入图片描述

代码

#include <iostream>
#define int long long
using namespace std;//特殊测试用例: 3327621916603411 7 9
inline string maxNum1(string st, int a, int b) {for (int i = 0; i < st.length(); i++) {int x = st[i] - '0';int up = 9 - x;									int down = x + 1;								if (x == 9) {									continue;} else if (up <= a) {		//能够上调x += up;a -= up;} else if (down <= b) { 	//能够下调			b -= down;x = 9;} else if (up > a) {	x += a;a = 0;} else if (a == 0 && b == 0) break;st[i] = x + '0';}return st;
}inline string maxNum2(string st, int a, int b) {for (int i = 0; i < st.length(); i++) {int x = st[i] - '0';int up = 9 - x;								int down = x + 1;								if (x == 9) {								continue;} else if (down <= b) { 			b -= down;x = 9;} else if (up <= a) {	x += up;a -= up;} else if (up > a) {		x += a;a = 0;} else if (a == 0 && b == 0) break;st[i] = x + '0';}return st;
}inline string findMax(string a, string b) {if (a > b) return a;else return b;
}signed main() {ios::sync_with_stdio(false);cin.tie(0);int a, b;string st;cin >> st;cin >> a >> b;st = findMax(maxNum1(st, a, b), maxNum2(st, a, b));cout << st << endl;
}	
http://www.lryc.cn/news/337208.html

相关文章:

  • 【C语言】- C语言字符串函数详解
  • 如何实现小程序滑动删除组件+全选批量删除组件
  • 基于SSM+Jsp+Mysql的农产品供销服务系统
  • ​​​​网络编程学习探索系列之——广播原理剖析
  • 小程序开发SSL证书下载和安装
  • 医疗图像分割 | 基于Pyramid-Vision-Transformer算法实现医疗息肉分割
  • 蓝桥杯 每日2题 day5
  • [ 云计算 | AWS 实践 ] Java 应用中使用 Amazon S3 进行存储桶和对象操作完全指南
  • 循环单链表算法库
  • WPS二次开发系列:Gradle版本、AGP插件与Java版本的对应关系
  • 绿联 安装MariaDB数据库用于Seatable服务
  • Spark, Storm, Flink简介
  • 【攻防世界】mfw(.git文件泄露)
  • 递归神经网络(Recursive Neural Networks)
  • 【leetcode面试经典150题】29.三数之和(C++)
  • ThinkPHP审计(1) 不安全的SQL注入PHP反序列化链子phar利用简单的CMS审计实例
  • Centos中一些有趣的命令
  • elementUI2
  • Python 爬虫基础——http请求和http响应
  • 【Hadoop】Hive导入导出数据指南
  • Mybatis 执行批量插入
  • vivado 使用基本触发器模式
  • Chrome 浏览器无法保存或自动填充密码
  • C语言面试指针辨析
  • YOLOV5 分类:利用yolov5进行图像分类
  • Golang | Leetcode Golang题解之第16题最接近的三数之和
  • React添加到现有项目
  • java 邮件发送表格
  • 鸿蒙ArkTS小短剧开源项目进行中
  • Go 项目依赖注入wire工具最佳实践介绍与使用