【ARC084D】Small Multiple
来源:互联网 发布:网络大学报名流程 编辑:程序博客网 时间:2024/06/11 13:38
题目链接:传送门
题解:
问题可以转化成从任意一个数字转化为k的倍数的最小代价
可以发现对于一个数字x,变为x+1的代价是1(最后一位不为0),变为10*x的代价是0
如果最后一位是9,那么+1后得到的数一定能由某个数*10转移得到
所以按照上述步骤bfs即可,复杂度O(k)
//by sdfzchy#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#include<queue>using namespace std;typedef pair<int,int> PII;typedef long long LL;const int inf=(1<<30),N=100010;int n,m;deque<PII> q;inline int in(){ char ch=getchar(); int f=1,tmp=0; while(ch<'0'||ch>'9') {if(ch=='-') f=-1;ch=getchar();} while(ch>='0'&&ch<='9') {tmp=(tmp<<1)+(tmp<<3)+(ch-'0');ch=getchar();} return tmp*f;}bool vis[N];int main(){ n=in(); q.push_front(make_pair(1,1)); while(!q.empty()) { PII x=q.front(); q.pop_front(); int fir=x.first,sec=x.second; if(vis[fir]) continue; vis[fir]=1; if(fir==0) {printf("%d\n",sec);return 0;} q.push_front(make_pair(fir*10%n,sec)); q.push_back(make_pair((fir+1)%n,sec+1)); } return 0;}
阅读全文
0 0
- 【ARC084D】Small Multiple
- [AtCoder Beginner Contest 077]D-Small Multiple
- ARC 084(Small Multiple-最短路)
- 【波兰黑科技(持续更新)16.5.6UPD】Small-Space Multiple-Pattern Matching
- Multiple
- Small Talk
- small function
- small points
- GSTREAMER SMALL
- Small pieces
- Small tricks
- small cases
- small english
- Small factorials
- small tree
- small tree
- small test
- small tree
- HashMap(one)
- BigDecimal浮点数计算
- 入门篇 1. Java Web 开发概述
- 解决apt-get install出现的错误
- JSP之项目路径问题(${pageContext.request.contextPath},<%=request.getContextPath()%>以及绝对路径获取)
- 【ARC084D】Small Multiple
- [AC自动机] HDU2243 考研路漫漫--单词情结
- 关于有偿提供拼图响应式后台的通知
- 随机抽取数据作验证集validation
- 被cloudera quickstart vm坑了一把
- AtCoder-Beginner-079
- Python小技巧 (List Tuple)
- 由中序遍历序列和后续遍历序列恢复二叉树
- mysql重置密码出现的一系列问题