当前位置: 首页 > 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;
}

相关文章:

  • 建筑末端配电回路安全用电解决方案:筑牢电气防火最后一道防线
  • 华为云Flexus+DeepSeek征文 | 基于华为云ModelArts Studio搭建AnythingLLM聊天助手
  • 边缘计算一:现代前端架构演进图谱 —— 从 SPA 到边缘渲染
  • 【大模型训练】中短序列attention 和MOE层并行方式(二)
  • 深度剖析:UI 设计怎样为小程序构建极致轻量体验
  • 从0到1掌握Sqoop:开启大数据迁移之旅
  • Kivy的ButtonBehavior学习
  • java面向对象高级部分
  • day6补 cpp:c++输入输出流,流的四种状态,标准输入输出流
  • CUDA 与 cuDNN 免登录下载政策详解(基于官方权威信息)
  • 软件确认测试报告:如何评估软件功能及测试关键点?
  • Java并发编程实战 Day 17:CompletableFuture高级应用
  • 爬虫+动态代理助力 AI 训练数据采集
  • QT绘制会动的蚂蚁线
  • AI服务代码说明文档
  • STM32学习之不同FLASH的芯片启动文件选择规则
  • 数据冗余对企业运营的隐性成本
  • 解决idea创建SpringBoot项目,会自动创建.git文件导致commit两极分化的现象。
  • 浅析hashmap
  • Linux驱动:framebuffer应用层实践
  • 昆明做企业网站哪家好/网站开发流程有哪几个阶段
  • bing网站提交/深圳seo优化服务
  • 网站建设优酷/购买域名
  • wordpress临时关闭站点/线上推广平台
  • 官方网站案例/网络营销策划方案怎么写
  • 一个dede管理两个网站/武汉seo网站优化技巧