NC235247 Sramoc问题
题目
题目描述
表示用数字 组成的自然数中能被M整除的最小数。给定 ,求 。例如 的时候, 。
输入描述
第一行为两个整数 。
输出描述
输出
示例1
输入
2 7
输出
1001
题解
知识点:BFS,数学。
由于数字可能很大,所以用 string
存储。注意到整除和余数相关,而且要求最小整数,因此同一个余数显然是较早经历过的更优,因此扩展时如果余数已经存在,则不扩展。
扩展时可以用余数直接做余数运算,利用了同余的性质。
时间复杂度
空间复杂度
代码
#include <bits/stdc++.h> using namespace std; int k, m; bool vis[1007]; struct node { string num; int r; }; string bfs() { queue<node> q; for (int i = 1;i < k;i++) { string s(1, '0' + i); q.push({ s,i % m }); vis[i % m] = 1; } while (!q.empty()) { node cur = q.front(); q.pop(); if (!cur.r) return cur.num; for (int i = 0;i < k;i++) { string s(1, '0' + i); string nnum = cur.num + s; int rr = (cur.r * 10 + i) % m; if (vis[rr]) continue; vis[rr] = 1; q.push({ nnum,rr }); } } return "null"; } int main() { std::ios::sync_with_stdio(0), cin.tie(0), cout.tie(0); cin >> k >> m; cout << bfs() << '\n'; return 0; }
本文来自博客园,作者:空白菌,转载请注明原文链接:https://www.cnblogs.com/BlankYang/p/16485077.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧