题意:

  给定m个1位数字,要求用这些数字组成n的倍数的最小数字,如果无法组成就输出0

分析:

  BFS,由于n最大5000,余数最多5000,利用余数去判重,并记录下路径即可

代码:

  

#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <vector>
using namespace std;
const int maxn=5010;
int n,m,vis[maxn],pre[maxn],ans[maxn],q[maxn];
vector<int>s;
void print(int u)
{
if(u==-1)
return;
print(pre[u]);
printf("%d",ans[u]);
}
int main()
{
while(~scanf("%d",&n))
{
scanf("%d",&m);
s.clear();
memset(vis,0,sizeof(vis));
int head=0,rear=0;
int num;
while(m--)
{
scanf("%d",&num);
s.push_back(num);
}
sort(s.begin(),s.end());
if(n==0)
{
printf("0\n");
continue;
}
int i;
for(i=0;i<s.size();i++)
{
if(s[i]==0)
continue;
int tmp=s[i]%n;
ans[rear]=s[i];
pre[rear]=-1;
q[rear++]=tmp;
vis[tmp]=1;
}
int flag=1;
while(head<rear)
{
int u=q[head];
if(u==0)
{
print(head);
flag=0;
printf("\n");
break;
}
for(i=0;i<s.size();i++)
{
int temp=((u*10+s[i])%n);
if(vis[temp]==0)
{
vis[temp]=1;
q[rear]=temp;
ans[rear]=s[i];
pre[rear++]=head;
}
}
head++;
}
if(flag)
printf("0\n");
}
return 0;
}

最新文章

  1. .NET平台机器学习组件-Infer.NET(三) Learner API—数据映射与序列化
  2. Thrift简单实践
  3. Android Gradle Build Error:Some file crunching failed, see logs for details解决办法
  4. C#设计模式之工厂方法
  5. mac上创建MySQL的基本步骤
  6. WebApi2官网学习记录--- Authentication与Authorization
  7. rapidPHP 1.1.0 介绍
  8. Nodejs前端服务器压缩图片
  9. [Qt Quick] qmlscene工具的使用
  10. Android开发之深入理解Android 7.0系统权限更改相关文档
  11. 测者的性能测试手册:Web压力测试工具webbench
  12. 2019软件工程第二次作业(VS2017中对C++的单元测试)
  13. IntelliJ IDEA创建web项目
  14. Angularjs自定义指令计算浏览器高度
  15. Java基础——正则表达式
  16. selenium元素定位Xpath,Contains,CssSelector
  17. 一个神奇的BUG :Failed to finalize session : INSTALL_FAILED_INVALID_APK: /data/app/vmdl99393454.tmp/10_slice__ signatures are inconsistent
  18. Linux学习笔记:Jenkins的使用
  19. 【翻译自mos文章】在RHEL7/OL7上安装Oracle 12.1.0.2的server端或者client时,报须要&amp;quot;compat-libstdc++&amp;quot;包
  20. 射线与平面的相交检测(Ray-Plane intersection test)【转】

热门文章

  1. 克隆虚拟机,如何将克隆虚拟的网卡设置为eth0
  2. AjaxHelper创建的ajax无效,JQuery直接方法post有效,原来是Microsoft.jQuery.Unobtrusive.Ajax错误,NuGet解决
  3. 使用dbstart 和dbshut 脚本来自动化启动和关闭数据库
  4. 000-C#基础
  5. MapXtreme在asp.net中的使用之加载地图(转)
  6. 统计字符 比如aaabbcca----3a2b1c1a
  7. ENOVIA 基础
  8. linux修改rm指令执行(数据安全)
  9. 如何导出远程oracle数据库中的表结构
  10. iframe自适应高度的多种方法方法小结(转)