DFS 蓝桥杯

news2025/4/17 21:54:53

最大数字

问题描述

给定一个正整数 NN 。你可以对 NN 的任意一位数字执行任意次以下 2 种操 作:

  1. 将该位数字加 1 。如果该位数字已经是 9 , 加 1 之后变成 0 。

  2. 将该位数字减 1 。如果该位数字已经是 0 , 减 1 之后变成 9 。

你现在总共可以执行 1 号操作不超过 AA 次, 2 号操作不超过 BB 次。 请问你最大可以将 NN 变成多少?

输入格式

第一行包含 3 个整数: N,A,BN,A,B 。

输出格式

一个整数代表答案。

dfs流程

void dfs(int u) //u表示到第几位
{
    if() {

      return;
    }  //边界


    st[i] = 1; // 改变条件
    dfs(u + 1); //下一步
    st[i] = 0; // 恢复现场


}

代码(通过率40%)
#include <bits/stdc++.h>
using namespace std;

#define int long long
string n;
int a, b;
int l,mx,res;

void dfs(int u)
{
  if(u == l) {
    mx = max(mx, res);
    cout << mx;
    return;
  }

  int t = n[u];
  int x = min(9-t, a);
  a-=x;
  res = res*10 + t + x; 
  dfs(u+1);
  a+=x;

  if(b > t) {
    b-=(t+1);
    res = res*10 + 9;
    dfs(u+1);
    b+=t+1;
  }
}

signed main()
{
  // 请在此输入您的代码
  cin >> n >> a >> b;
  l = n.size();  
  dfs(0);  

  return 0;
}
ac代码
#include <iostream>
#include <cmath>
using namespace std;
string n;
long long ans; 
int a,b;
void dfs(int x,long long an){    //a代表每次遍历的数 
    int t=n[x]-'0';    //位数转为int
    if(n[x]){          //防止为空 
        int c=min(a,9-t);
        a-=c;
        dfs(x+1,an*10+t+c);
        a+=c;
        if(b>t){
            b=b-t-1;
            dfs(x+1,an*10+9);
            b=b+t+1;
        }
    }else{
        ans=max(ans,an);
    }
}
int main(){
    cin>>n>>a>>b;
    dfs(0,0);   //0号字符 
    
    cout<<ans;
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2331021.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LabVIEW 开发如何降本增效

在 LabVIEW 开发领域&#xff0c;如何在确保项目质量的同时降低开发成本&#xff0c;是众多企业和开发者共同关注的焦点。这不仅关乎资源的高效利用&#xff0c;更影响项目的投资回报率和市场竞争力。下面&#xff0c;我们将从多个维度深入剖析降本策略&#xff0c;并结合具体案…

Tomcat 负载均衡

目录 二、Tomcat Web Server 2.1 Tomcat 部署 2.1.1 Tomcat 介绍 2.1.2 Tomcat 安装 2.2 Tomcat 服务管理 2.2.1 Tomcat 启停 2.2.2 目录说明 2.2.3编辑主页 2.3 Tomcat管理控制台 2.3.1开启远程管理 2.3.2 配置远程管理密码 三、负载均衡 3.1 重新编译Nginx 3.1.1 确…

4月8日日记

今天抖音刷到一个视频 记了一下笔记 想做自媒体&#xff0c;直播&#xff0c;抖音是最大的平台&#xff0c;但是我的号之前因为跟人互喷被封号了 今天想把实名认证转移到新号上&#xff0c;试了一下竟然这次成功了&#xff0c;本以为能开直播了但是 还是因为之前的号有违规记…

【JavaScript】十六、事件捕获和事件冒泡

文章目录 1、事件流2、事件捕获3、事件捕获4、阻止冒泡5、解绑事件6、鼠标经过事件的区别7、两种事件注册语法的区别 1、事件流 先举个形象的例子&#xff1a;你去西安大雁塔旅游 出发找目的地时&#xff1a;先从你家出发&#xff0c;到陕西省西安市&#xff0c;再到雁塔区&a…

基于 Spring Boot 瑞吉外卖系统开发(一)

基于 Spring Boot 瑞吉外卖系统开发&#xff08;一&#xff09; 系统概述 系统功能 技术选型 初始项目和数据准备 初始项目和SQL文件下载 创建数据库并导入数据 打开reggie项目 运行效果 主函数启动项目&#xff0c;访问URL&#xff1a; http://127.0.0.1:8080/backend/pag…

WordPress超简洁的主题:果果CMS主题

果果CMS是基于WordPress开发的超精简的一款主题&#xff0c;它在原有的特性上添加了许多新特性&#xff0c;例如&#xff1a;随机文章、随机标签、随机分类、广告、友情链接等。 新版特性&#xff1a; 小&#xff1a;主题安装包文件大小只有140.48KB。少&#xff1a;主题最小…

leetcode13.罗马数字转整数

遍历&#xff0c;下一个值不大于当前值就加上当前值&#xff0c;否则就减去当前值 class Solution {public int romanToInt(String s) {Map<Character, Integer> map Map.of(I, 1,V, 5,X, 10,L, 50,C, 100,D, 500,M, 1000);int sum 0;for (int i 0; i < s.length(…

线程安全问题的原因与解决方案总结

目录 一 什么是线程安全&#xff1f; 二 线程安全问题的实例 三 线程安全问题的原因 1.多个线程修改共享数据 2.抢占式执行 3.修改操作不是原子的 4.内存可见性问题 5.指令重排序 四 解决方案 1.同步代码块 2.同步方法 3.加锁lock解决问题 一 什么是线程安全&…

Tunable laser激光器的前向和后向锁波长方案

----转载自秦岭农民的文章 Tunable laser可调激光器的锁波长方案 激光器锁波长技术是指通过各种手段将激光器的输出波长稳定在某一特定值或范围内&#xff0c;以满足高精度应用的需求。这些技术包括Etalon、波长计/光谱仪反馈、波长参考源、温度控制、电流控制、锁相环&#…

蓝桥杯:日期统计

文章目录 问题描述解法一递归解法二&#xff1a;暴力破解 问题描述 首先我们要了解什么是子序列&#xff0c;就是一个序列之中可以忽略元素但是不能改变顺序之后获得的序列就叫做子序列。 如"123"就是"11234"的子序列而不是"11324"的子序列 解法…

IQ解调原理#通信原理系列

IQ解调原理&#xff1a;接收端收到s(t)信号后&#xff0c;分为两路&#xff1a; 一路信号乘以cosω₀t再积分&#xff0c;就可以得到a&#xff1a; 另一路乘以 -sinω₀t再积分&#xff0c;就可以得到b&#xff1a;

C++蓝桥杯实训篇(三)

片头 嗨&#xff01;小伙伴们&#xff0c;大家好~ 今天我们来学习前缀和与差分相关知识&#xff0c;准备好了吗&#xff1f;咱们开始咯&#xff01; 一、一维前缀和 以上&#xff0c;是我们用数学知识求解区间和&#xff0c;现在我们使用前缀和来求解&#xff1a; 我们知道&am…

【数据挖掘】岭回归(Ridge Regression)和线性回归(Linear Regression)对比实验

这是一个非常实用的 岭回归&#xff08;Ridge Regression&#xff09;和线性回归&#xff08;Linear Regression&#xff09;对比实验&#xff0c;使用了 scikit-learn 中的 California Housing 数据集 来预测房价。 &#x1f4e6; 第一步&#xff1a;导入必要的库 import num…

CExercise_07_1指针和数组_1编写函数交换数组中两个下标的元素

题目&#xff1a; 要求编写函数将数组作为参数传递来实现&#xff1a; 1.编写函数交换数组中两个下标的元素。函数声明如下&#xff1a;void swap(int *arr, int i, int j) 。要求不使用[]运算符&#xff0c;将[]还原成解引用运算符和指针加法来完成。 关键点 通过指针交换数组…

塔能科技:智能路灯物联运维产业发展现状与趋势分析

随着智慧城市建设的推进&#xff0c;智能路灯物联运维产业正经历快速发展&#xff0c;市场规模持续扩大。文章探讨了智能路灯物联运维的技术体系、市场机遇和挑战&#xff0c;并预测了未来发展趋势&#xff0c;为行业发展提供参考。 关键词 智能路灯&#xff1b;物联运维&#…

ZW3D二次开发_普通对话框_设置对话框弹出位置

ZW3D的普通对话框可以在UI设计时静态地设置对话框弹出的位置&#xff0c;方法如下&#xff1a; 选中对话框的最顶级对象&#xff0c;即ZsCc::Form对象&#xff0c;在属性管理器中添加一个动态属性“form_pos”&#xff0c;类型为“StringList”&#xff0c;如下图所示 不同属性…

低代码开发「JNPF」应用场景

政务系统快速搭建 在数字化政务转型的浪潮下&#xff0c;JNPF 快速开发平台扮演着关键角色&#xff0c;为政府部门提供了高效且便捷的审批流程自动化解决方案。 以 “一网通办” 为例&#xff0c;通过平台的可视化拖拽式配置功能&#xff0c;政府工作人员能够将原本复杂繁琐的…

欧拉函数模板

1.欧拉函数模板 - 蓝桥云课 问题描述 这是一道模板题。 首先给出欧拉函数的定义&#xff1a;即 Φ(n) 表示的是小于等于 n 的数中和 n 互质的数的个数。 比如说 Φ(6)2&#xff0c;当 n 是质数的时候&#xff0c;显然有 Φ(n)n−1。 题目大意&#xff1a; 给定 n 个正整数…

屏幕空间反射SSR-笔记

屏幕空间反射SSR 相关文章&#xff1a; [OpenGL] 屏幕空间反射效果 Games202-RealTime GI in Screen Space github上的例子&#xff0c;使用visual studio2019 github例子对应的文章 使用OpenGL和C实现发光柱子的SSR倒影 下面是一个使用OpenGL和C实现屏幕空间反射(SSR)来创建…

动态规划算法深度解析:0-1背包问题(含完整流程)

简介&#xff1a; 0-1背包问题是经典的组合优化问题&#xff1a;给定一组物品&#xff08;每个物品有重量和价值&#xff09;&#xff0c;在背包容量限制下选择物品装入背包&#xff0c;要求总价值最大化且每个物品不可重复选取。 动态规划核心思想 通过构建二维状态表dp[i]…