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

B. Good times Good times(Codeforces 2241)

B. Good times Good times 题解

题意简述

一个整数被称为good,当且仅当它的十进制表示中最多只含两种不同数字

给定一个已经保证为 good 的整数x,要求构造一个整数y,满足:

  • 2 <= y <= 10^9
  • y是 good
  • x * y也是 good

如果有多个合法答案,输出任意一个即可。

核心构造

x的十进制长度为n

n <= 8时,直接取:

y = 10^n + 1

例如:

x = 299 n = 3 y = 1001 x * y = 299 * 1001 = 299299

可以看到,乘积就是把x拼接了两次。

为什么这样一定正确?

因为:

x * (10^n + 1) = x * 10^n + x

其中x * 10^n会把x左移n位,相当于在后面补n0

再加上x,结果就是:

xx

也就是x自己拼接自己。

题目保证x是 good,也就是说x本身最多只含两种数字。把它复制一遍后,数字种类不会变多,所以x * y一定也是 good。

同时,当n <= 8时:

y = 10^n + 1 <= 100000001 <= 10^9

并且y只包含数字10,所以y本身也是 good。

特殊情况

题目中有:

1 <= x <= 10^8

因此x最多是9位数。

唯一的9位情况是:

x = 100000000

此时不能再取10^9 + 1,因为会超过10^9

我们直接取:

y = 10

则:

x * y = 100000000 * 10 = 1000000000

它只包含数字10,仍然是 good。

构造示意

x = 6767 n = 4 y = 10001 6767 * 10001 ------------- 6767 + 67670000 ------------- 67676767

乘积67676767仍然只含数字67

C++ 代码

#include<bits/stdc++.h>usingnamespacestd;intmain(){ios::sync_with_stdio(false);cin.tie(nullptr);intt;cin>>t;while(t--){string x;cin>>x;intn=x.size();if(n==9){cout<<10<<'\n';}else{longlongy=1;for(inti=0;i<n;i++){y*=10;}cout<<y+1<<'\n';}}return0;}

复杂度分析

每个测试用例只需要计算10^n,其中n <= 9

  • 时间复杂度:O(t)
  • 空间复杂度:O(1)
http://www.jsqmd.com/news/1128697/

相关文章:

  • 51单片机电冰箱保护器
  • 独立站搭建工具测评:BBWEYY/比文云/Prismic/Vercel/Supabase(2026年7月更新)含零代码SAAS、AI编程、源码定制交付
  • 英语单词测试
  • 2026最新AI大模型零基础入门学习计划|小白程序员专属,从理论到实战直通高薪
  • 从零开始学AI:2周上手,半年做项目,1年工程落地(收藏版)
  • 训练框架实战——FSDP vs DeepSpeed,选框架不是选最好的
  • Audacity音频编辑完全指南:从零开始制作专业音频的免费方案
  • 【共创季稿事节】记事本应用开发:ArkTS 中编辑模式切换与文本处理
  • Kimi LeetCode 3464. 正方形上的点之间的最大距离 Java实现
  • 数据产业服务分类(29)——数据产业——数字经济与数据产业
  • AI 文档助手知识库:先清理旧文档,再接检索
  • 如何用ChanlunX缠论插件3分钟完成专业股票技术分析
  • 常见排序算法详解
  • RustFS保姆级教程:Docker快速部署兼容S3的本地对象存储
  • Git仓库的打包与还原 - bundle相关命令介绍
  • 别再熬夜肝论文了!2026年5款AI写论文软件实测对比,第3款真香
  • 全套 MacBook 必调设置,瞬间适配私人Mac,上手教程分享
  • 【LE Audio】CSIP精讲[5]: 蓝牙协同设备组的安全防护体系与实战规范
  • 土木工程人必备的计算工具箱,免费无广告,大幅提升工作效率
  • GRC与渗透测试协同:构建动态有效安全防御体系
  • 教培机构小程序搭建工具测评:餐宝盈/BBWEYY/比文云/Notion Sites/Carrd(2026年7月更新)含零代码SAAS、AI编程、源码定制交付
  • pytest中文教程:从入门到实战的自动化测试框架指南
  • Kimi LeetCode 3464. 正方形上的点之间的最大距离 Rust实现
  • 无需复杂设置!这款会议APP一键录音不漏关键内容
  • HarmonyOS ArkTS 实战:实现一个校园食堂排队取餐记录应用
  • VLC Android电视版专业配置手册:解锁大屏媒体中心的终极潜力
  • RAG的“语义相似≠真正相关”陷阱:从向量检索到图RAG的架构演进
  • Java面向对象课程设计:学生成绩管理系统
  • Python的struct,把C语言那套二进制魔法,一把塞进你的字符串
  • 收藏!2026年企业决胜关键:AI智能体(小白程序员必看)