P11059 [入门赛 #27] 数字 (Hard Ver.)题解

news/2024/10/6 10:23:12

Solution

先读题:

在给定x的位数\(n\)和模数\(p\)后,要求构造一个\(x\)在满足\(x\mod p\)的余数尽可能小的前提下使\(x\)的数字尽可能小。

我们假设\(x\)的各位数字之和为\(m\),有\(1\le m\le 9n\)。.
(当\(x\)仅在最高位有1时\(m=1\),称为情况一,当x每位为9时\(m=9n\),称为情况二)
此时对于\(m\)有两种情况:

\(p> 9n\)\(p=1\)时无需构造,属于情况一。

\(1<p\le9n\)时需构造,属于情况二,且可以简单证明必定有一个合法\(x\)使\(x\mod p=0\)

做法:

对于情况二,容易想到一种贪心解法,此时的模数\(p\)可直接看作能在每一位放的所有数字之和,步骤如下:

  1. 在最高位先放数字1维持\(x\)合法并是\(p\)减1。
  2. 再从最低位开始放数字,当\(p>=9\)时该位放9且让\(p\)减去9,当\(1\le p\le8\)且不为最高位时使该位为p,接着走向较高的下一位。
  3. 放置过程中若\(p=0\),那么说明所有数字放完,退出。
  4. 若在最高位仍有\(p>0\),那么时最高位为\(p+1\)(在步骤一中最高位已经放了1,再加上此时的\(p\))并退出。

复杂度分析:

因为按位放数字,有\(n\)位,复杂度为\(O(n)\),且\(1\le n\le 10^{6}\),该方式可行。

Code

#include <bits/stdc++.h>
using namespace std;
const int N=1e6+1;
int n,p,a[N],idx=1;
int main() {cin>>n>>p;if(n*9<p){putchar('1');for(int i=1;i<n;++i)putchar('0');}else{p--;while(idx!=n&&p){if(p>=10)a[idx]=9;else a[idx]=p;p-=a[idx];++idx;}a[n]=++p;for(int i=n;i>=1;--i)cout<<a[i];}return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

【THM】The Marketplace练习

脚本小子是这样的,黑客只要写POC就可以,可是脚本小子要考虑的事情就多了。 学到了新知识:利用XSS漏洞进行钓鱼、通过Token获取管理员权限、利用docker提权【THM】The Marketplace练习 与本文相关的TryHackMe实验房间链接:TryHackMe | The Marketplace 简介:你能接管marke…

Windows计划任务出现0x1错误结果

Windows计划任务出现0x1错误结果现象 解决方法 结果 现象 参考不少的文章,基本上都是说因为权限的问题,但试了N次都不行,仍然报0x1的错误结果,亲测解决方法说明如下; 1.脚本本身没问题,手动本地可以执行; 2.系统版本 Windows 10 专业工作站版 版本号 21H2 解决方法 在设…

面相快速入门教程2转化智慧

2 转化智慧 你的脸是遗传、环境和生活经历的产物。它展现了你的身份、经历和未来;它揭示了你独特的潜能,以及你需要什么才能感到幸福。你特征中的信息可以成为帮助你创造真正有意义和充实生活的绝佳资源。你所要做的就是照镜子。 事实上,你不需要知道什么特别的事情,就能从…

P10678 『STA - R6』月 题解

Solution 看了别的大佬的题解,感觉都是数学证明然后用树和图做的,看不懂啊。。。萌新瑟瑟发抖 用 vector 模拟树,然后贪心摸索做出来了。注意到要求最深叶子结点和最浅叶子结点的距离最短时的情况,那么此时根节点应该是树中度数最大的点,把树尽可能的拓宽,深度换宽度。 那…

学期(如2024-2025-1) 20241304 《计算机基础与程序设计》第2周学习总结

学期(如2024-2025-1)20241304 《计算机基础与程序设计》第2周学习总结 作业信息这个作业属于哪个课程 <班级的链接>(2024-2025-1-计算机基础与程序设计)这个作业要求在哪里 <作业要求的链接>(如2024-2025-1计算机基础与程序设计第二周作业)这个作业的目标 <…

Cisco Firepower 1000 Series FTD Software 7.6.0 ASA Software 9.22.1

Cisco Firepower 1000 Series FTD Software 7.6.0 & ASA Software 9.22.1Cisco Firepower 1000 Series FTD Software 7.6.0 & ASA Software 9.22.1 Firepower Threat Defense (FTD) Software - 思科防火墙系统软件 请访问原文链接:https://sysin.org/blog/cisco-firep…

从零开始学机器学习——网络应用

首先给大家介绍一个很好用的学习地址:https://cloudstudio.net/columns 今天,我们的主要任务是按照既定的流程再次运行模型,并将其成功加载到 Web 应用程序中,以便通过 Web 界面进行调用。最终生成的模型将能够基于 UFO 目击事件的数据和经纬度信息,推断出事件发生的城市地…

Cisco Firepower 4100 Series FTD Software 7.6.0 ASA Software 9.22.1

Cisco Firepower 4100 Series FTD Software 7.6.0 & ASA Software 9.22.1Cisco Firepower 4100 Series FTD Software 7.6.0 & ASA Software 9.22.1 Firepower Threat Defense (FTD) Software - 思科防火墙系统软件 请访问原文链接:https://sysin.org/blog/cisco-firep…