NC235247 Sramoc问题
题目
题目描述
\(Sramoc(K ,M)\) 表示用数字 \(0,1,2,3,4,...,k-1\) 组成的自然数中能被M整除的最小数。给定 \(K,M\) \(2\leq K\leq 10,1\leq M\leq 1000\) ,求 \(Sramoc(K ,M)\) 。例如 \(K=2,M=7\) 的时候, \(Sramoc(2 ,7) =1001\) 。
输入描述
第一行为两个整数 \(K,M\) 。
输出描述
输出 \(Sramoc(K ,M)\)
示例1
输入
2 7
输出
1001
题解
知识点:BFS,数学。
由于数字可能很大,所以用 string
存储。注意到整除和余数相关,而且要求最小整数,因此同一个余数显然是较早经历过的更优,因此扩展时如果余数已经存在,则不扩展。
扩展时可以用余数直接做余数运算,利用了同余的性质。
时间复杂度 \(O(?)\)
空间复杂度 \(O(M)\)
代码
#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;
}
NC235247 Sramoc问题的更多相关文章
- 洛谷P1602 Sramoc问题 题解报告【同余+bfs】
题目描述 话说员工们整理好了筷子之后,就准备将快餐送出了,但是一看订单,都傻眼了:订单上没有留电话号码,只写了一个sramoc(k,m)函数,这什么东西?什么意思?于是餐厅找来了资深顾问团的成员,YQ ...
- 洛谷P1602 Sramoc问题
P1602 Sramoc问题 题目描述 话说员工们整理好了筷子之后,就准备将快餐送出了,但是一看订单,都傻眼了:订单上没有留电话号码,只写了一个sramoc(k,m)函数,这什么东西?什么意思?于是餐 ...
- 洛谷——P1602 Sramoc问题
P1602 Sramoc问题 $bfs$搜索 保证第一个搜到的符合条件的就是最小的 #include<bits/stdc++.h> #define N 110000 using names ...
- 洛谷 P1602 Sramoc问题
题目描述 话说员工们整理好了筷子之后,就准备将快餐送出了,但是一看订单,都傻眼了:订单上没有留电话号码,只写了一个sramoc(k,m)函数,这什么东西?什么意思?于是餐厅找来了资深顾问团的成员,YQ ...
- 洛谷 1602 Sramoc问题
Description 话说员工们整理好了筷子之后,就准备将快餐送出了,但是一看订单,都傻眼了:订单上没有留电话号码,只写了一个sramoc(k,m)函数,这什么东西?什么意思?于是餐厅找来了资深顾问 ...
- 【t085】Sramoc问题
Time Limit: 1 second Memory Limit: 128 MB [问题描述] Sramoc(K,M)表示用数字0,1,2,...,K-1组成的自然数中能被M整除的最小数.给定K,M ...
- luogu P1602 Sramoc问题
嗯...这篇题解写的原因是一位大佬网友问我的题 本蒟蒻为了纪念下这一刻,就写了 我只会写一写基本思路,经不起推敲 还是大家凑活看吧 重点来了 在bfs时,队列里的每个元素由一个高精度的数和那个数模m的 ...
- 洛谷1602 Sramoc问题
刚看到这道题的时候感觉像spfa. 然后发现其实bfs就可以做了. //Serene #include<algorithm> #include<iostream> #inc ...
随机推荐
- shell 实现项目的启动与停止
本文为博主原创,转载请注明出处: 1. 以tomcat 为例,编写启动脚本: #!/bin/sh bin=$(cd `dirname $0`; pwd) pid=$(ps aux | grep tom ...
- android studio 如何把依赖导出成 jar
反编译工具 dex-tools-2.1-SNAPSHOT 第一步 用一个普通的app工程,引用所有的库,然后生成apk文件 第二步 把apk文件,改扩展名为zip,解压后,里面有几个*.dex文件,拷 ...
- IBM java的分析工具(ga和ha)学习和整理
IBM java的分析工具(ga和ha)学习和整理 背景 前几天学习了整理了 jca 工具 今天继续学习一下 ga工具 ga 工具主要是分析gclog相关. 可以很直观的进行gclog的分析和展示. ...
- [转帖]kafka 配置认证与授权
https://www.cnblogs.com/yjt1993/p/14739130.html 本例不使用kerberos做认证,使用用户名和密码的方式来进行认证 1.服务端配置 1.0 配置serv ...
- [转帖]Kafka 与RocketMQ 落盘机制比较
https://www.jianshu.com/p/fd50befccfdd 引言 前几期的评测中,我们对比了Kafka和RocketMQ的吞吐量和稳定性,本期我们要引入一个新的评测标准--软件可靠性 ...
- [转帖]一次python服务的性能优化经历
https://juejin.cn/post/7208708762265616421 问题背景: 在我们的业务中,有一些推荐的场景会需要走到集团研究院的算法推荐服务,对一些用户进行个性化的课件推荐 ...
- [转帖]INTEL MLC(Memory Latency Checker)介绍
https://zhuanlan.zhihu.com/p/359823092 在定位机器性能问题的时候,有时会觉得机器莫名其妙地跑的慢,怎么也看不出来问题.CPU频率也正常,程序热点也没问题,可就是慢 ...
- CentOS 下载RPM包的方法
有时候linux安装rpm包总是各种各样的错误提示, 很不好友 公司网路有不好 很难下载下来rpm包 这个时候可以使用如下网站进行获取rpm包 www.rpmfind.nethttps://cento ...
- 自建邮箱服务器 EwoMail 发送邮件的办法
总结来源: http://doc.ewomail.com/docs/ewomail/changguipeizhi 1. 首先这个机器不能安装dovecot等软件,不然安装脚本会失败. 2. 下载安装文 ...
- vue中v-show你不知道的用法 created computed mounted的执行顺序
我们都知道,v-show的值是一个布尔类型的. 我通过这个值进行显示或者隐藏. 但是有些时候,这个值是true还是false,我们需要去进行计算 此时我们就可以使用v-show="XXX() ...