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

news/2025/6/15 7:54:06/文章来源:https://www.cnblogs.com/badn/p/18448883

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.hqwc.cn/news/808946.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【THM】The Marketplace练习

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

模型无关的局部解释(LIME)技术原理解析及多领域应用实践

在当前数据驱动的商业环境中,人工智能(AI)和机器学习(ML)已成为各行业决策制定的关键工具。从金融机构的信贷风险预测到医疗保健提供者的疾病诊断,AI模型正在塑造对生活和业务有深远影响的结果。 然而随着这些模型日益复杂化,一个重大挑战浮现:即"黑盒"问题。…

ABC374E 题解

好题。爱做。标签:二分。 求最大的最小值,考虑二分答案。然后问题就转化成了(求 \(n\) 次):有两种物品,每种物品有一个代价和价值,求获得不少于给定价值所需的最小代价。 下文记物品的代价为 \(w\),价值为 \(v\),所拿的数量为 \(cnt\)。 假设有两种物品 \(S\) 与 \(T\…

不同文件夹使用不同的Git用户

tee ~/.gitconfig <<EOF [includeIf "gitdir:~/Desktop/Project/"]path = ~/Desktop/Project/.gitconfig EOFtee ~/Desktop/Project/.gitconfig <<EOF [user]name = your_nameemail = your_mail EOF

记 OI

记 OI前言 感觉再不写出来点什么我就真的要得抑郁症了。2024.10.6 “美好”的十一假期,因为要上网课,假期移到了 5/6 号,但是学校领导说 6 号日子不好,就只给放 5 号了。真是无语……。 放假的时候还失眠,现在一点精力都没有,我自从中考之后就没有睡过几个好觉,现在总感…

各个防火墙厂商的初始账号密码

厂商 登录地址 用户名 密码 技术支持热线 备注天融信 https://192.168.1.254/https://192.168.1.254:8080 superman talent/talent!23 8008105119联想网御 https://10.1.5.254:8889 admin leadsec@7766 /administrator /bane@7766 4008107766 / 010-56632666 需要证书(最好IE浏…

SEHS4517 Web Application Development

SEHS4517 Web Application Development and Management Semester 1, 2024-2025 Assignment Individual Assignment (30% of the assessment of this course) This individual assignment aims: To conduct research on relevant reference materials or sources. To dev…

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

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