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

codeforces C. Devyatkino

题目简述:

给定一个整数n,可以给n加上仅由9组成的整数(9,99,999,9999......),问最少进行多少次可以使得n的任一数位上出现7?

思路:

观察规律,看看加上这个整数后对n的影响,可以发现对应数位上的数+上9会使得当前数位的值-1,可以根据这个特性求解;

这时我们可以发现次数最多不会超过9(对于6,-9次1就会变成7),次数很小,可以从小到大依次枚举次数

但考虑9很奇怪,不好想,我们可以换一种角度,把9看成10-1;对于n我们加几次就会-几次1,所以问题就变成了n-i加10,100等何时最少次数出现7(变成了可以对每一位+1,就很简单了);

现在我们可以进一步想到,次数最多不会超过7,因为对于n-i,最坏情况我们可以在最高位的前一位+高于n-i的数位的10的次幂,+7次便会符合条件

对于每一个n-i,我们枚举他的每一位数,对于符合条件的数直接输出即可,因为我们是从小到大枚举的;

总代码:

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define endl "\n"
const int N=5e5+10;
void solve(){int n;cin >> n;for (int i=0;i<7;i++) {string s=to_string(n-i);for (auto x:s) {int t=x-'0';if (t==7) {cout << i << endl;return ;}else if (t<7&&7-t==i) {cout << i << endl;return ;}}}cout << 7 << endl;
}
signed main(){ios::sync_with_stdio(false);cin.tie(nullptr);int q=1;cin>>q;while(q--) solve();return 0;
}

http://www.xdnf.cn/news/981559.html

相关文章:

  • Java并发工具包
  • 【59 Pandas+Pyecharts | 淘宝华为手机商品数据分析可视化】
  • 深度解读谷歌Brain++液态神经网络:重塑动态智能的流体计算革命
  • Gogs:一款极易搭建的自助 Git 服务
  • [Java恶补day22] 240. 搜索二维矩阵Ⅱ
  • React第六十节 Router中createHashRouter的具体使用详解及案例分析
  • android studio向左向右滑动页面
  • Babylon.js引擎
  • MMDG++:构筑多模态人脸防伪新防线,攻克伪造攻击与场景漂移挑战
  • java面向对象高级部分
  • 大数据服务器和普通服务器之间的区别
  • LDStega论文阅读笔记
  • 【基于阿里云上Ubantu系统部署配置docker】
  • RawTherapee:专业RAW图像处理,免费开源
  • 【AI智能体】Coze 数据库从使用到实战操作详解
  • Docker Compose完整教程
  • day51python打卡
  • AI时代的行业重构:机遇、挑战与生存法则
  • Spring Boot + MyBatis日志前缀清除方法
  • Grounding Language Model with Chunking‑Free In‑Context Retrieval (CFIC)
  • mysql如何快速生成测试大数据库
  • Java高频面试之并发编程-27
  • TensorZero:开源 LLM 应用优化与可观测性平台
  • SpringBoot 前后台交互 -- CRUD
  • 前端模块化的过去和未来
  • spider分享--图片
  • 如何使用deepseek满血版
  • 语音合成之二十 VITS模型详解与MeloTTS实现
  • PCB设计教程【大师篇】STM32开发板原理图设计(接口部分)
  • 基于生成对抗网络(GAN)的图像生成与编辑:原理、应用与实践