#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
struct node {
string s;
int num;
};
int k, m;
queue<node> q;
void bfs() {
for (int i = 1; i < k; i ++) {
q.push(node {to_string(i), i % m});
}
while (!q.empty()) {
node now = q.front();
q.pop();
for (int i = 0; i < k; i ++) {
int nnum = (now.num * 10 + i) % m;
q.push(node {now.s + to_string(i), nnum});
if (nnum == 0) {
cout << now.s + to_string(i);
return;
}
}
}
}
int main() {
cin >> k >> m;
bfs();
return 0;
}
可以发一下题面吗?
3. Sramoc问题
题目ID:1332拓展题100分
最新提交:
Runtime Error
90 分
历史最高:
Accepted
100 分
时间限制: 1000ms
空间限制: 65536kB
题目描述
Sramoc ( K , M ) 表示用数字0、1、2…、K-1组成(数位拼接)的正整数中能被M整除的最小数。给定 K、M,求Sramoc ( K,M )。例如 K=2,M=7的时候,Sramoc( 2 , 7 ) = 1001。
输入格式:
第一行为两个整数K、M满足2≤K≤10、k≤M≤1000。
输出格式:
输出Sramoc(K,M)
错哪个点
Test 4
Runtime Error
time: -1ms,memory:-1kb, points: 0
输入
2 999
预期输出
111111111111111111111111111
速度很慢,半分钟才输出,结果是对的
…我之前也错的这个点
1 个赞
我以前做过但是突然忘了,我去找一下我的代码
喵?
看了一下,主体基本都对,还需要进一步检查
if(now.mod%m==0){
cout<<now.s;
return;
}
少了这个
加在
q.pop()的后面吧
A了解决方案
你为什么没有vis数组???
now.mod是啥意思
就是num
此帖子已被社区举报,现已被临时隐藏。
不要发AC代码
举报了
我不接受特判过题
不是哥们,我跟他用的方法都是一样的bfs+结构体+队列
不是这个问题,不能发AC代码
if (k==2&&m==999)printf("111111111111111111111111111");
那你这。。。