本来想刷道签到题结果被卡住了。这题题意描述有点问题,数字又不一定都是个位数。。。难道是我英语太差了? digits就表示0~9这几个数?唉,还是太弱了。这题就是用了一个bfs,应该说还是有点意思的,直接模拟复杂度肯定爆炸,而且还不好判无解的情况。而bfs复杂度是n*10的,因为%n相同的状态搜索过程都是相同的,相当于一堆循环节,而无解的情况也好判了,状态都搜完后还没有%n为0的就无解了,因为剩下的都是一堆循环节,也不可能搜到解了。

#include<iostream>
#include<cstring>
#include<cmath>
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn=;
struct node{
int m,f,x;
}q[maxn],A,B;
int cas,n,m,can[],head,tail,vis[maxn],flag;
void print(int x){
if(!x)return;
print(q[x].f);
printf("%d",q[x].x);
}
int main(){
while(scanf("%d%d",&n,&m)!=EOF){
++cas;flag=;int x;
memset(vis,,sizeof(vis));
memset(can,,sizeof(can));
for(int i=;i<=m;++i){
scanf("%d",&x);can[x]=;
}
printf("Case %d: ",cas);
head=tail=;
for(int i=;i<=;++i)if(!can[i]){
A.m=i%n;A.x=i;A.f=;
if(!A.m){printf("%d\n",i);flag=;break;}
if(!vis[A.m]){
q[++tail]=A;vis[A.m]=;
}
}
if(flag)continue;
while(head<tail){
B=q[++head];
for(int i=;i<=;++i)if(!can[i]){
A.m=(B.m*+i)%n;
A.x=i;A.f=head;
if(vis[A.m])continue;
vis[A.m]=;q[++tail]=A;
if(!A.m){flag=;break;}
}
if(flag)break;
}
if(flag){
print(tail);printf("\n");
}
else{puts("-1");}
}
//system("pause");
return ;
}
/*
2345 3
7 8 9
100 1
0
*/

最新文章

  1. 大熊君学习html5系列之------WebStorage(客户端轻量级存储方案)
  2. 【Alpha】Daily Scrum Meeting第九次
  3. .NET Core HtmlAgilityPack HTML解析利器
  4. Html5_禁止Html5在手机上屏幕页面缩放
  5. js注册验证提示!
  6. [汇编] 002基础知识-CPU和寄存器
  7. Spring + JdbcTemplate + JdbcDaoSupport examples
  8. 【转】Ubuntu环境下SSH的安装及使用
  9. HDU 1813 Escape from Tetris (IDA*)
  10. Matlab中调用第三方Java代码
  11. 剑指offer-删除链表中重复的节点
  12. c# 如何找到项目中图片的相对路径
  13. Zip文件和RAR文件解压
  14. 请简要介绍Sping MVC、IoC和AOP
  15. vs2010 :0X80041FEB 程序集无法修改版等内容
  16. 8. Django系列之上传文件与下载-djang为服务端,requests为客户端
  17. js 数组随机排序
  18. dfs序+主席树 BZOJ 2588 当然树链剖分+主席树也可以?
  19. Axure Beta 7.0 汉化版下载
  20. (新)解决php版本ueditor中动态配置图片URL前缀(imageurlprefix)的方法

热门文章

  1. vue 环境搭建
  2. ES6 Symbol的应用场景
  3. 分析入口文件main.php
  4. Lazarus的二维码解决方案
  5. openssl_error_string()
  6. Python之路(第二篇):Python基本数据类型字符串(一)
  7. sim卡联系人name为空的问题。
  8. 将hibernate框架融入到spring框架中
  9. syslog系统日志、Windows事件日志监控
  10. transform.forward和vector3.forward