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

DFS 蓝桥杯

最大数字

问题描述

给定一个正整数 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;
}

相关文章:

  • 【C++算法】52.链表_两两交换链表中的节点
  • 分布式防护节点秒级切换:实战配置与自动化运维
  • FTP协议和win server2022安装ftp
  • HarmonyOS-ArkUI Ability进阶系列-各类生命周期总结
  • 网络安全应急响应-日志分析
  • 核心机制与主流协议解析
  • vim定位有问题的脚本/插件的一般方法
  • 蓝桥杯基础算法-递归
  • Efficient Burst Raw Denoising:稳定噪声方差和分频率降噪
  • EMA注意力机制
  • 数字游戏(继Day 10)
  • FreeRTOS临界区
  • mybatis是如何进行分页的?分页插件的原理是什么
  • 【学习笔记】HTTP和HTTPS的核心区别及工作原理
  • w283图书商城管理系统
  • Docker全方位指南
  • 嵌入式---加速度计
  • 原子化 CSS 的常见实现框架
  • 微软 SC-900 认证-考核Azure 和 Microsoft 365中的安全、合规和身份管理(SCI)概念
  • 从光波调制到温度补偿:Lilikoi光纤力传感器的核心技术拆解
  • 俄乌官员即将在土耳其会谈,外交部:支持俄乌开启直接对话
  • A股三大股指低收:汽车股领涨,大金融走弱,两市成交近1.1万亿元
  • 上海虹桥国际咖啡文化节开幕,推出茶咖文化特色街区、宝妈咖啡师培训
  • 上海市税务局:收到对刘某某存在涉税问题的举报,正依法依规办理
  • 远洋集团:今年前4个月销售80.9亿元,同比增加13.62%
  • 沪指跌0.68%报3380.82点,创指跌1.92%:券商、军工跌幅靠前