【t085】Sramoc问题
Time Limit: 1 second
Memory Limit: 128 MB
【问题描述】
Sramoc(K,M)表示用数字0,1,2,。。。,K-1组成的自然数中能被M整除的最小数。给定K,M,求Sramoc(K,M)。
例如,K=2,M=7时,Sramoc(K,M)=1001。
【输入格式】
输入文件第一行为两个整数K,M,满足2<=k<=10,1<=m<=1000。
【输出格式】
输出文件包含Sramoc(K,M)的值。
Sample Input
2 7
Sample Output
1001
【题目链接】:http://noi.qz5z.com/viewtask.asp?id=t085
【题意】
按照数据,不一定要用满k个数字,可以只用一部分.
【题解】
这个用同余率来搞吧;
每次增加一位的时候只要知道前n-1位的模m的值就好了;
然后*10+新加上的数字然后再对m取模;就是n位数的模m值了;
然后可以用一个二维数组bo[i][j]来判重,表示最后一位数字为i,余数为j的情况有没有出现过;
用广搜吧;
加上那个判重;
很容易写出程序;
程序在队列的基础上写了个递归的输出过程;
这样就不用把整个数字都记录下来了(这个数字多大都没关系了);
【完整代码】
#include <cstdio>
#include <algorithm>
#include <cmath>
using namespace std;
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define LL long long
#define rep1(i,a,b) for (int i = a;i <= b;i++)
#define rep2(i,a,b) for (int i = a;i >= b;i--)
#define mp make_pair
#define pb push_back
#define fi first
#define se second
#define rei(x) scanf("%d",&x)
#define rel(x) scanf("%I64d",&x)
typedef pair<int,int> pii;
typedef pair<LL,LL> pll;
const int dx[9] = {0,1,-1,0,0,-1,-1,1,1};
const int dy[9] = {0,0,0,-1,1,-1,1,-1,1};
const double pi = acos(-1.0);
const int MAXN = 110;
struct abc
{
int pre,num,last;
};
int k,m,l,r;
abc dl[500000];
bool bo[10][2000];
void output_ans(int now)
{
if (now==0)
return;
output_ans(dl[now].pre);
printf("%d",dl[now].last);
}
int main()
{
//freopen("F:\\rush.txt","r",stdin);
rei(k);rei(m);
rep1(i,1,k-1)
{
if (i%m==0)
{
printf("%d\n",i);
return 0;
}
if (bo[i][i%m]) continue;
bo[i][i%m] = true;
abc temp;
temp.pre = 0;
temp.num = i%m;
temp.last = i;
dl[++r] = temp;
}
l = 0;
while (l < r)
{
abc tou = dl[++l];
int now = tou.num;
rep1(i,0,k-1)
{
int rest = (now*10+i)%m;
if (!bo[i][rest])
{
bo[i][rest] = true;
abc temp1;
temp1.num = rest;
temp1.pre = l;
temp1.last = i;
dl[++r] = temp1;
if (rest==0)
{
output_ans(r);
return 0;
}
}
}
}
return 0;
}
【t085】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)函数,这什么东西?什么意思?于是餐厅找来了资深顾问 ...
- luogu P1602 Sramoc问题
嗯...这篇题解写的原因是一位大佬网友问我的题 本蒟蒻为了纪念下这一刻,就写了 我只会写一写基本思路,经不起推敲 还是大家凑活看吧 重点来了 在bfs时,队列里的每个元素由一个高精度的数和那个数模m的 ...
- 洛谷1602 Sramoc问题
刚看到这道题的时候感觉像spfa. 然后发现其实bfs就可以做了. //Serene #include<algorithm> #include<iostream> #inc ...
随机推荐
- HTML5拖放API实现拖放排序的实例代码
想要拖放某个元素,必须设置该元素的 draggable 属性为 true,当该属性为 false 时,将不允许拖放.而 img 元素和 a 元素都默认设置了 draggable 属性为 true,可直 ...
- 50倍时空算力提升,阿里云RDS PostgreSQL GPU版本上线
2019年3月19日,阿里云RDS PostgreSQL数据库GPU规格版本正式上线,开启了RDS异构计算并行加速之路.该版本在RDS(关系型数据库服务)的云基础设施层面首次完成了与阿里云异构计算产品 ...
- 【JZOJ4786】【NOIP2016提高A组模拟9.17】小a的强迫症
题目描述 输入 输出 样例输入 3 2 2 1 样例输出 3 数据范围 样例解释 解法 先假定每种颜色的珠子取一个按顺序排列. 设这n个珠子就是每一种颜色的珠子的最后一个. 考虑逐个把珠子放入. 对于 ...
- Apache Camel,Spring Boot 实现文件复制,转移 (转)
基本框架 Apache Camel Spring Boot Maven 开发过程 1.新建一个POM(quickstart)项目,在POM文件中添加Camel和Spring Boot的依赖 <p ...
- Docker for windows pull镜像文件的安装位置改变方法
发生现象: 在windows10下安装docker for windows,随着用docker pull image文件后,C盘的容量越来越小了,你可能也有一种跟我一样的想法,想改变默认的安装路径,本 ...
- Directx教程(30) 如何保证渲染物体不会变形
原文:Directx教程(30) 如何保证渲染物体不会变形 在Directx11教程(6)中, 我们曾经实现过这个功能,但那时是在SystemClass中,处理WM_SIZE时候,重新调用m ...
- oracle-Mount
执行nomount的所有工作,另外附加数据结构并与这些数据结构进行交互.这时,oracle从控制文件中获得信息. 可以执行的任务是: 执行数据库的完全恢复操作 重命名数据文件 改变数据库的归档状态. ...
- 小爬爬1:开篇&&简单介绍启动
1.第一阶段的内容 2.学习的方法? 思考,总结,重复 3.长大了意味着什么?家庭的责任,真的很重 4.数据分析&&数据清洗 numpy&&pandas&&am ...
- MySQL的安装问题总结--终极解决方案
MySQL安装 选择:custom 自定义 更改路径 安装到其他盘 选择:launch configuration finish 进行配置 如果忘记选择 找 "E:\Program Fil ...
- oracle一些常见的问题
对于权限审计和大部分语句,by session无效,无论指定by session/by access还是不指定,审计都自动为by access. 审计的语句级可以指定ALL,但是ALL只包括大部分语句 ...