题目描述

话说员工们整理好了筷子之后,就准备将快餐送出了,但是一看订单,都傻眼了:订单上没有留电话号码,只写了一个sramoc(k,m)函数,这什么东西?什么意思?于是餐厅找来了资深顾问团的成员,YQ,SC,HQ,经过大量的查阅,大家获得了一些信息,Sramoc ( K , M ) 表示用数字0、1、2…、K-1组成的自然数中能被M整除的最小数。例如 K=2,M=7的时候,Sramoc( 2 , 7 ) = 1001。自然电话号码就是1001,为了尽快将快餐送出,电脑组的童鞋们埋头算起了这个齐葩的号码。。。

输入输出格式

输入格式:

第1行为两个整数 k, m (2≤k≤10, 0≤m≤1000)。

输出格式:

仅1行,那个电话号码(最小的数)。

输入输出样例

输入样例#1:

2 7
输出样例#1:

1001

吐槽

  看题面应该是某次比赛的题目之一,比赛的题目背景都是连贯的,打比赛一大乐趣就是欣赏各种有趣的题目背景了。

  被搬到公共题库后,题目背景就支离破碎了。丧失了读题目背景的乐趣,实在是一种损失……

解题思路

  乍一看题,感觉是一道普通的数位搜索,类似USACO1.5中一道名为 特殊的质数肋骨(Superprime Rib)的搜索题。

  于是按照题意敲了一波广搜,每次拓展时按照0、1、2…k-1的顺序在已有数字后面接数字,这样就能保证搜索到的数字是递增出现的,第一个搜到的满足条件的数字一定是最小的。交上去得了80分,一看,两个点WA,输出负数,应该是溢出了。把int改成long long,90分,还是WA了一个点,依然溢出。换成__int128,交上去还是90,然而那个不过的点TLE了……随着数位的增多,搜到的数是成指数型增长的啊……

  瞄了一眼题解

  这题正解可以是这样——在广搜时,队列里的每个元素由一个高精度的数(字符串)和那个数模m的值。拓展节点时,如果拓展得到的余数为零,直接返回输出即可,要是这个余数不为零且之前没有出现过,就加入队列,之前出现过,就舍弃吧。我不太明白为何出现过的相同的余数不用加入队列,是他们拓展结果重复吗?先留坑

源代码

#include<queue>
#include<cstdio>
#include<string>
#include<iostream>
int k,m;
struct Node{
int yu;
std::string s;
}n[],temp;
bool used[]={};
Node bfs()
{
std::queue<Node> q;
for(int i=;i<k;i++)
{
temp.yu=i%m;
temp.s="";
temp.s+=i%m+'';
q.push(temp);
used[i%m]=;
}
while(!q.empty())
{
temp=q.front();
q.pop();
for(int i=;i<k;i++)
{
Node v=temp;
v.s=temp.s;
v.s+=i+'';
v.yu=(temp.yu*+i)%m;
if(v.yu==) return v;
if(!used[v.yu]) q.push(v),used[v.yu]=;
}
}
} int main()
{
scanf("%d%d",&k,&m);
std::cout<<bfs().s;
return ;
}

最新文章

  1. ajax的理解与工作流程
  2. ARM Linux 3.x的设备树(Device Tree)
  3. DDL、DML、
  4. TreeView1MouseMove
  5. Java 计算两个日期相差月数
  6. Mac OS X 系统目录结构
  7. SQL Server查看表信息
  8. mig_ddr4_ultrascale
  9. &lt;django中render_to_response的可选参数和使用方法&gt;
  10. LPSTR、LPCSTR、LPTSTR、LPCTSTR、LPWSTR及LPCWSTR的意义及区别
  11. DEDECMS批量修改默认文章和列表命名规则的方法
  12. 20155219 付颖卓《基于ARM试验箱的接口应用于测试》课程设计个人报告
  13. C#实现简单的RPC
  14. shell awk处理过滤100万条数据
  15. java中import static和import的区别【转】
  16. centos7安装zabbix3.5
  17. Windows 64 位 mysql 5.7.20 安装教程
  18. 安装hadoop1.2.1(参考hadoop实战第二版)
  19. 迷宫问题的C语言求解
  20. nginx+Uwsgi+Django总结与分析

热门文章

  1. (Go)06. Printf格式化输出、Scanf格式化输入详解
  2. Ruby&#160;各种离奇运算符
  3. bzoj1725 [Usaco2006 Nov]Corn Fields牧场的安排(状压dp)
  4. Django day11(一) ajax 文件上传 提交json格式数据
  5. Zeppelin0.6.2+sparkR2.0.2环境搭建
  6. jQuery获取及设置单选框、多选框、文本框
  7. Hibernate多表映射(三)
  8. 【转】国外程序员整理的 PHP 资源大全
  9. input表单(02)
  10. Android App 开机启动画面和开机自动启动APP程序设置