题解:CF2121E Sponsor of Your Problems

news/2025/11/6 22:26:22/文章来源:https://www.cnblogs.com/StarLink/p/19197903

嗯对发现自己的专栏里有,遂搬运。

题目简述

定义 \(f(a, b)\) 表示这两个数的十进制下数字相同的位数,如 \(f(21,12) = 0\)\(f(54321, 24361) = 3\)

给两个位数相同的十进制数 \(l\)\(r\),求 \(l \leq x \leq r\)\(f(l, x) + f(x, r)\) 的最小值。

思路

分类讨论,我们从简单到难分析。

首先如果 \(l = r\),答案就是数字位数乘二,直接输出。

接下来考虑一般的请况,我们假设现在 \(l = 1239971\)\(r = 1240056\)

我们从高位到低位看,发现它们的最高两位是相同的,那么在它们之间的数都是 \(12 \dots\) 的形式,和第一种相似,直接将一样的位数乘二加到答案里(但是一定要是从最高位开始都一样)。

第三、四、五位是我们讨论的重点所以我们暂时跳过一下。

我们看倒数第二位,发现如果选 \(6\) 的话就完美绕开限制了,既然题目中让我们求最小值那肯定是能绕就绕,而且这一位之后的数字肯定存在和 \(l\)\(r\) 上对应位置的数字不同的,即后面也不会对答案有贡献。所以,当同一位上的数字之差大于 1,就直接输出答案

举一个其它例子,当 \(l = 369, r = 531\) 时,我们最高位取了 \(4\) 之后,后面的数无论怎么选都是在 \(l\)\(r\) 这个区间里的,就一定有 473 这样每一位都和 \(l, r\) 不同的,那么这之后的答案贡献就是 0。

回看第三位,即同一位上的数字相差为 1 怎么办。

那么当前位肯定是要在两位中选一个了,我们先将答案加上一再考虑后面的。

容易发现,它的下一位是几乎没有限制的,也就是对答案的贡献为 0。
但是如果像我们举的这个例子一样,出现了 \(l\) 上这一位为 9 另一个为 0,那就等于是在 39 和 40 中选一个,答案加一,然后考虑下一位什么情况;
如果很不幸下一位还是这种情况,到这里相当于 399 和 400 中选,就只能一直选下去。

不过如果某一位出现了不一样的情况,像我们举的例子一样出现了其他的数字,那就相当于后面的数字又可以随便选了,后面的答案贡献都是 0,我们直接输出答案跑路就 OK 了。

如果还有不太懂的可以自己写个数想一想,还是很好推的。

思路清晰后代码就很好写了。

代码

#include <bits/stdc++.h>
using namespace std;int x, y, len, ans, tpos;
int a[3][11];void part(int x, int op) {int l = 0;while (x) {a[op][++l] = x % 10;x /= 10;}len = l;
}int main() {ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);int T;cin >> T;while (T--) {tpos = ans = 0;cin >> x >> y;part(x, 1), part(y, 2);if (x == y) { // 特判cout << 2 * len << endl;continue;}for (int i = len; i; i--) { // 判断相等的情况if (a[1][i] != a[2][i]) {tpos = i;break;}ans += 2;}int f = 0; // f:是否出现数字相差 1for (int i = tpos; i; i--) {// 相差为一且前面都是相等的if (a[1][i] + 1 == a[2][i] && !f) {ans++; // 只能选一个,答案肯定加一f = 1;continue;}// 前面有相差为一的情况且第一个数当前位是9另一个是0else if (a[1][i] == 9 && a[2][i] == 0 && f) {ans++; // 同样二选一continue;}break; // 都不符合:一定有和两个数字都不同的情况,直接输出答案}cout << ans << "\n";}return 0;
}

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

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

相关文章

wepoc Nuclei 漏洞扫描器图形界面工具

一款图形化的nuclei POC 管理工具🛡️ wepoc Nuclei 漏洞扫描器图形界面工具🚀 基于 Wails v2 框架的 Nuclei 漏洞扫描器图形界面工具 专为安全研究人员和渗透测试工程师设计 Github: https://github.com/cyber0s/…

Python实现数据可视化用Matplotlib轻松创建专业级图表 - 指南

Python实现数据可视化用Matplotlib轻松创建专业级图表 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Cons…

Python因果分析选哪个?六个贝叶斯推断库实测对比(含代码示例)

Python 生态里能用的因果库有很多选哪个往往要看你对模型的理解程度,以及项目对“可解释性”的要求。这篇文章将对比了六个目前社区中最常用的因果推断库:Bnlearn、Pgmpy、CausalNex、DoWhy、PyAgrum 和 CausalImpac…

题解:CF2121B Above the Clouds

不知何时的模拟赛收录了此题不知道是什么时候的事了反正看到了粘一下算了。 思路 首先我们注意到只要 \(b\) 是 \(a + c\) 的子串即可,不需要考虑长度,那么我们可以只考虑 \(b\) 的长度为 1 情况。 可以将每个字符出…

实用指南:学习日报 20251007|深度解析:基于 Guava LoadingCache 的优惠券模板缓存设计与实现

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

选择 Tita 新绩效一体化的 5 大理由

在企业绩效管理从 “单一考核” 向 “价值驱动” 转型的当下,Tita 新绩效一体化解决方案凭借对绩效管理全链路的深度重构,以五大核心优势助力企业打破绩效孤岛,实现管理效能与组织活力的双重提升。 1. 战略与绩效深…

csv的pandas包处理基础操作整理,以处理气象站点数据为例

处理csv文件,同样将结果保存为csv文件,只涉及数据不涉及Excel文件的格式,主要使用pandas包就足够了。以我自己的任务为主,串一串基础语句进行总结。 1、读取csv文件 import pandas as pd import numpy as np impor…

NOIP模拟赛20251106 T3

题目大意: 有一个长度为 \(n\) 的序列,每次你会单点修改,求每次修改完了之后的 \(f\)。 \(f\) 表示最少操作几次冒泡,使得他不降。 \(n,q \le 5 \times 10^5\) 解题思路: 考虑刻画这个东西,由于每次对于一个非前…

Tomassi计算机

请分析计算机检材,找出嫌疑人计算机主要的登录用户(答案格式:Administrator) Tomasi请分析计算机检材,嫌疑人计算机操作系统的注册所有者是?(答案格式:Administrator) Windows 用户请分析计算机检材,嫌疑人计…

团队第一次作业

软件工程第一次实践作业软件工程实践 https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering作业要求 https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering/homework/13573作业的目标 自主选题,选…

20251106周四日记

20251106周四日记昨天问D老师的特征提取很有收获,很多之前深度学习的知识想通了,结合多维度线性代数的知识。VAE Diffusion原理值得一看。 今日: 1.早上在家试衣服,中午吃完午饭等爹回来看豆子,回学校直接去实验室…

学习:初学BP

支付漏洞 例如navicat软件的官网 1.打开BP,用BP内部浏览器打开2.在进入付款界面前用BP进行拦截3.最后放行即可成功

2025年上海防水补漏TOP5最新评测:从屋顶到地下室,全场景解决

随着城市化进程加快,建筑防水补漏需求日益增长,上海作为国际化大都市,对防水工程的专业性、可靠性提出了更高要求。本榜单基于技术实力、服务覆盖、施工质量、客户口碑、资质认证五大维度,结合2024年行业数据及客户…

线段树维护区间历史信息和为例的复杂信息维护同标记下传设计技巧简记

简记线段树维护区间历史信息和为例的复杂信息维护同标记下传设计技巧并给出例题示范实现过程与代码实现示例。更新日志 2025/11/06:开工。思路 单次影响与维护信息 首先考虑每一种修改操作单次对信息的影响,特殊地,…

DFS 序

思想对于树结构,通常包括进入节点和离开节点的两次记录(即时间戳),形成一个长度为2N的序列(N为节点数)。性质子树连续性‌:同一子树的节点在DFS序中形成连续区间。例如,根节点的子树区间包含所有子节点的访问记…

重组蛋白纯化标签科普:从His到SUMO、Avi的全面解析

重组蛋白纯化标签科普:从His到SUMO、Avi的全面解析在蛋白研究与生物技术服务中,重组蛋白表达 是最核心的基础技术之一。无论是科研实验、结构分析还是功能验证,获取高纯度、高活性的蛋白是实验成功的关键。为了从复…

2025.11.6

今天上午两节课,下午开团会,然后出去吃饭

飞牛nas播放卡顿的解决方案

搭建了飞牛nas,没有使用飞牛的账号,直接用的外网IP做了端口映射,前期用的还好,突然有一天,不管是网页播放视频,还是客户端播放,都变得非常卡,几乎不能用。查看后台,网络上传只有几十KB,各个部件的资源占用都…

第三十五篇

今天是11月6号,上了数据结构和体育