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

小红的数位删除【牛客tracker 每日一题】

小红的数位删除

时间限制:1秒 空间限制:256M

网页链接

牛客tracker

牛客tracker & 每日一题,完成每日打卡,即可获得牛币。获得相应数量的牛币,能在【牛币兑换中心】,换取相应奖品!助力每日有题做,丰盈牛币日益多!

题目描述

小红拿到了两个正整数a aab bb,她每次操作可以选择其中一个正整数,删除一个数位。例如,对于" 1243 " "1243""1243"而言,进行一次操作可以生成" 124 " 、 " 123 " 、 " 143 " "124"、"123"、"143""124""123""143"" 243 " "243""243"
小红希望最终a aab bb的倍数或者b bba aa的倍数。她想知道自己最少的操作次数是多少?

输入描述:

两个正整数a aab bb,用空格隔开。
1 ≤ a , b ≤ 10 9 1≤a,b≤10^91a,b109

输出描述:

如果无法如何都无法使得a aab bb的倍数或者b bba aa的倍数,则输出− 1 -11
否则输出一个整数,代表小红的最小操作次数。

示例1

输入:

37 111

输出:

0

说明:

111 11111137 3737的倍数,所以小红不需要任何操作。

示例2

输入:

1234 99

输出:

2

说明:

第一个数删除数字′ 1 ′ '1'1,变成234 234234。第二个数删除数字′ 9 ′ '9'9,变成9 99234 2342349 99的倍数。

解题思路

本题采用二进制枚举+暴力验证的思路求解最小操作次数,核心是用二进制位掩码枚举a 、 b a、bab所有可能的数位保留/删除组合:将a aa的每一位对应二进制数的一个比特位(1 11保留、0 00删除),同理处理b bb;遍历a aa的所有掩码(共2 n 2^n2n种)和b bb的所有掩码(共2 m 2^m2m种),计算每种组合下保留的数字x xxa aa的保留数位组成)、y yyb bb的保留数位组成)及操作次数o p opop(删除的数位总数);过滤掉x xxy yy0 00的无效情况,若x xxy yy的倍数或y yyx xx的倍数,则更新最小操作次数a n s ansans;最终若a n s ansans仍为无穷大则输出− 1 -11,否则输出a n s ansans。该方法通过枚举所有可能的数位删除组合,暴力验证是否满足倍数条件,虽时间复杂度较高,但因a 、 b a、bab位数最多为10 1010位(2 1 0 = 1024 2^10=1024210=1024),实际可高效运行,精准找到满足条件的最小操作次数。

总结

  1. 核心逻辑是用二进制掩码枚举a 、 b a、bab所有数位保留/删除组合,计算对应保留数字和操作次数。
  2. 关键验证条件:保留数字非0 00且满足倍数关系,更新最小操作次数。
  3. 最终根据最小操作次数是否为无穷大,输出− 1 -11或具体数值。

代码内容

#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;typedefunsignedlonglongull;typedefpair<ll,ll>pii;constll p=1e9+7;constll N=2e5+10;constll inf=0x3f3f3f3f3f3f3f3f;intmain(){string a,b;cin>>a>>b;ll ans=inf;ll n=a.size(),m=b.size();for(ll i=0;i<(1<<n);i++){for(ll j=0;j<(1<<m);j++){ll op=0,x=0,y=0;for(ll k=0;k<n;k++){if(i&(1<<k))x=x*10+a[k]-'0';elseop++;}for(ll k=0;k<m;k++){if(j&(1<<k))y=y*10+b[k]-'0';elseop++;}if(!x||!y)continue;if(x%y==0||y%x==0)ans=min(ans,op);}}cout<<(ans==inf?-1:ans)<<endl;return0;}
http://www.jsqmd.com/news/389844/

相关文章:

  • “住过招商,只会再选招商”——一位老业主置业逻辑
  • 纯HTML本地版社工密码生成器 SocialEngineeringDictionaryGenerator
  • PyTorch实战(26)——PyTorch分布式训练深度解析:原理、实战与踩坑记录
  • 三月七小助手:解放双手的游戏自动化神器应用全攻略
  • 激光熔覆仿真comsol通过激光进行熔覆工艺进行仿真,对温度与应力进行研究 采用COMSOL中...
  • 新年快乐!!!
  • 编译BitNet.cpp并部署BitNet 2B4T模型的实践
  • 拖延症福音!降AIGC软件 千笔·降AIGC助手 VS 知文AI 专科生专属利器
  • 第2章 认识CPU-2.3 32位微处理器(3)
  • 图论笔记
  • 第2章 认识CPU-2.4 【实例】:在DOS实模式下读取4GB内存(1)
  • 不踩雷!继续教育专属AI论文网站 —— 千笔·专业论文写作工具
  • 用数据说话 8个AI论文工具:自考毕业论文+开题报告全测评
  • AI Agent 安全工程师:构建可信、可控、可审计的下一代智能体安全体系
  • 照着用就行:自考必备的降AI率软件 千笔·降AI率助手 VS 锐智 AI
  • 闭眼入!10个AI论文工具测评:本科生毕业论文写作必备指南
  • 一篇搞定全流程 8个AI论文软件:继续教育毕业论文+格式规范全测评
  • 一文讲透|9个降AI率工具:MBA论文降AI率全攻略
  • 参考文献崩了?千笔·专业论文写作工具,碾压级的AI论文软件
  • 智慧养殖牛只行为活动状态检测数据集VOC+YOLO格式2113张5类别
  • 闭眼入 8个降AIGC平台测评:专科生降AI率必备神器
  • 新手也能上手!万众偏爱的AI论文写作软件 —— 千笔
  • 详细介绍:谷歌驱动安装自动化
  • [特殊字符] 龍魂系统·审计内核宪法篇·第六章
  • 旧版联想电脑管家 3.0.0.5292 _吾爱破解_转
  • 什么是虚拟路由器
  • 先进工业网络是怎样的
  • 什么是小行星架构
  • Go接口与类型系统进阶:从底层实现到泛型实战
  • 什么是Xsec