给定l,r(1e18),定义f(x):x中最大的数位减去最小数位。对于l<=x<=r, 求f(x)最小值

news2024/11/17 11:46:12

题目

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pb push_back
#define fi first
#define se second
#define lson p << 1
#define rson p << 1 | 1
const int maxn = 1e6 + 5, inf = 1e18, maxm = 4e4 + 5, base = 397;
const int mod = 1e9 + 7;
// const __int128 mod = 212370440130137957LL;
const int N = 1e6;
// int a[1005][1005];
int a[maxn], b[maxn];
bool vis[maxn];
int n, m;
string s;

struct Node{
    // int val, id;
    // bool operator<(const Node &u)const{
    //     return val < u.val;
    // }
    int a, b;
    bool operator<(const Node &u)const{
        return b < u.b;
    }
}c[maxn];

int ans[maxn], pre[maxn];

int calc(int x){
    string s = to_string(x);
    auto[pmn, pmx] = minmax_element(s.begin(), s.end());
    return *pmx - *pmn;
}

void solve(){
    int res = 0;
    int k, q;
    int l, r;
    cin >> l >> r;
    int pw = 1;
    res = l;
    for(int i = 1; i <= 19; i++){//得19次,18次就WA
        for(int j = 0; j < 10; j++){
            int x = l / pw * pw + (pw - 1) / 9 * j;
            // cout << x << ' ' << calc(x) << '\n';
            if(x >= l && x <= r && calc(x) < calc(res)){
                res = x;
            }
            x = r / pw * pw + (pw - 1) / 9 * j;
            // cout << x << ' ' << calc(x) << '\n';
            if(x >= l && x <= r && calc(x) < calc(res)){
                res = x;
            }
        }
        pw *= 10;
    }
    cout << res << '\n';
    /*
    l:1111999
    r:1112200

    对于l,按照这个算法(答案是l或r的前缀拼接上k个相同的数字),只会算到x = 1112222,但是比r大了,无效
    显然1112111是更优的,这个算法不能通过l得到1112111,但是能通过r得到
    */
}   
    
signed main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    
    int T = 1;
    cin >> T;
    while (T--)
    {
        solve();
    }
    return 0;
}

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

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

相关文章

【JAVA】CSS3伸缩盒案例、响应式布局、BFC

1.CSS3伸缩盒案例 效果&#xff1a;用伸缩盒模型 <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title>&…

Day33:安全开发-JavaEE应用SQL预编译Filter过滤器Listener监听器访问控制

目录 JavaEE-预编译-SQL JavaEE-过滤器-Filter JavaEE-监听器-Listen 思维导图 Java知识点 功能&#xff1a;数据库操作&#xff0c;文件操作&#xff0c;序列化数据&#xff0c;身份验证&#xff0c;框架开发&#xff0c;第三方库使用等. 框架库&#xff1a;MyBatis&#…

复合查询【MySQL】

文章目录 复合查询测试表 单表查询多表查询子查询单行子查询多行子查询IN 关键字ALL 关键字ANY 关键字 多列子查询 合并查询 复合查询 测试表 雇员信息表中包含三张表&#xff0c;分别是员工表&#xff08;emp&#xff09;、部门表&#xff08;dept&#xff09;和工资等级表&…

Python刘诗诗

写在前面 刘诗诗在电视剧《一念关山》中饰演了女主角任如意&#xff0c;这是一个极具魅力的女性角色&#xff0c;她既是一位有着高超武艺和智慧的女侠士&#xff0c;也曾经是安国朱衣卫前左使&#xff0c;身怀绝技且性格坚韧不屈。剧中&#xff0c;任如意因不满于朱衣卫的暴行…

Java多线程实战-实现多线程文件下载,支持断点续传、日志记录等功能

&#x1f3f7;️个人主页&#xff1a;牵着猫散步的鼠鼠 &#x1f3f7;️系列专栏&#xff1a;Java全栈-专栏 &#x1f3f7;️个人学习笔记&#xff0c;若有缺误&#xff0c;欢迎评论区指正 目录 前言 1 基础知识回顾 1.1 线程的创建和启动 1.2 线程池的使用 2.运行环境说…

JVM学习之常见知识点汇总、2024详细版面试问题汇总;JVM组成、类加载器、GC垃圾回收、堆、栈、方法区

目录 JVM组成 什么是程序计数器 详细的介绍一下Java的堆 什么是虚拟机栈 堆和栈的区别 堆空间的分配策略 对于方法区的解释 IO和NIO拷贝数据的对比 JVM内存结构 JVM去除永久代改用元空间替代的原因 类加载器 什么是类加载器&#xff0c;类加载器有哪些 什么是双亲…

吴恩达机器学习-可选实验室:可选实验:使用逻辑回归进行分类(Classification using Logistic Regression)

在本实验中&#xff0c;您将对比回归和分类。 import numpy as np %matplotlib widget import matplotlib.pyplot as plt from lab_utils_common import dlc, plot_data from plt_one_addpt_onclick import plt_one_addpt_onclick plt.style.use(./deeplearning.mplstyle)jupy…

计算机组成原理实验报告1 | 实验1.1 运算器实验(键盘方式)

本文整理自博主大学本科《计算机组成原理》课程自己完成的实验报告。 —— *实验环境为学校机房实验箱。 目录 一、实验目的 二、实验内容 三、实验步骤及实验结果 Ⅰ、单片机键盘操作方式实验 1、实验连线&#xff08;键盘实验&#xff09; 2、实验过程 四、实验结果的…

C语言:深入补码计算原理

C语言&#xff1a;深入补码计算原理 有符号整数存储原码、反码、补码转换规则数据与内存的关系 补码原理 有符号整数存储 原码、反码、补码 有符号整数的2进制表示方法有三种&#xff0c;即原码、反码和补码 三种表示方法均有符号位和数值位两部分&#xff0c;符号位用0表示“…

25改考408最新资讯!拷贝

东北大学 东北大学计算机考研全面改考408 东北大学计算机学院官网&#xff1a;http://www.cse.neu.edu.cn/6274/list.htm 东北大学计算机考研全面改考408 公告原文 东北大学计算机科学与工程学院关于调整2025年硕士研究生招生计算机科学与技术、计算机技术、人工智能专业初试…

NBlog整合OSS图库

NBlog部署维护流程记录&#xff08;持续更新&#xff09;&#xff1a;https://blog.csdn.net/qq_43349112/article/details/136129806 由于项目是fork的&#xff0c;所以我本身并不清楚哪里使用了图床&#xff0c;因此下面就是我熟悉项目期间边做边调整的。 目前已经调整的功能…

机器学习评价指标(分类、目标检测)

https://zhuanlan.zhihu.com/p/364253497https://zhuanlan.zhihu.com/p/46714763https://blog.csdn.net/u013250861/article/details/123029585 1.1 混淆矩阵 在介绍评价指标之前&#xff0c;我们首先要介绍一下混淆矩阵&#xff08;confusion matrix&#xff09;。混淆矩阵…

数据结构小记【Python/C++版】——B树篇

一&#xff0c;基础概念 B树也是一种自平衡搜索树&#xff0c;常用于数据库中索引的实现。 B树和AVL树的区别在于&#xff1a; B树是一种多路平衡查找树&#xff0c;B树的节点可以有两个以上的子节点(AVL树是二叉树&#xff0c;最多只能有两个子节点)。 B树的每个节点可以存…

什么是SSL洪水攻击,有办法处理吗?

相信不少人曾遇到过或是听说过DDOS攻击&#xff0c;分布式拒绝服务&#xff08;DDoS&#xff09;攻击指多个系统联合进行攻击&#xff0c;从而使目标机器停止提供服务或资源访问。大致来说&#xff0c;就是让多台电脑向一台服务器发送大量的流量&#xff0c;直到该服务器崩溃掉…

利用GPT开发应用007:警惕人工智能幻觉,局限与注意事项

文章目录 一、人工智能幻觉二、计算案例三、斑马案例四、总结 正如您所见&#xff0c;一个大型语言模型通过基于给定的输入提示逐个预测下一个单词&#xff08;或标记&#xff09;来生成答案。在大多数情况下&#xff0c;模型的输出对您的任务来说是相关的&#xff0c;并且完全…

解决Ubuntu 16.04/18.04 图形化界面异常、鼠标光标消失、鼠标变成叉叉等问题

bug场景&#xff1a; 一切从一次换源说起…叭叭叭 这篇文章解决的问题&#xff1a; 1.换源&#xff0c;默认源太慢&#xff0c;换成可用的阿里云的源 2.apt-get failed to …问题 3.图形化异常问题 4.get unmet dependence 问题 5. 鼠标光标消失和鼠标变成叉叉问题。 解决方…

【计算机网络_应用层】https协议——加密和窃密的攻防

文章目录 1.https协议的介绍2. 加密和解密2.1 什么是加密2.2 常见的加密方式2.2.1 对称加密2.2.2 非对称加密 2.3 数据摘要&#xff08;数据指纹&#xff09;2.4 数字签名 3. https协议的加密和解密方案一&#xff1a;使用对称加密&#xff08;❌&#xff09;方案二&#xff1a…

搜维尔科技:动作捕捉与数字时尚:Wondar Studios欧莱雅项目

来自意大利的Wondar Studios工作室&#xff0c;是一家制作与动作捕捉技术相关软件和内容的公司&#xff0c;其出品的三维角色动画均由专业动捕系统真实录制制作。 我们很高兴与大家分享Wondar Studios最新的动捕项目&#xff0c;该项目带来了身临其境的虚拟现实体验。他们与巴…

加密流量分类torch实践4:TrafficClassificationPandemonium项目更新

加密流量分类torch实践4&#xff1a;TrafficClassificationPandemonium项目更新 更新日志 代码已经推送开源至露露云的github&#xff0c;如果能帮助你&#xff0c;就给鼠鼠点一个star吧&#xff01;&#xff01;&#xff01; 3/10号更新 流量预处理更新 增加了基于splitCa…

JavaScript基础6之执行上下文、作用域链、函数创建、函数激活、checkScope的执行过程、闭包、this

JavaScript基础 执行上下文执行上下文中的属性变量对象全局上下文的变量对象函数上下文执行过程进入执行上下文代码执行思考题 作用域链函数创建函数激活checkScope的执行过程总结 闭包分析闭包 this 执行上下文 执行上下文中的属性 每一个执行上下文都有三个核心属性 变量对…