uva1653
本来想刷道签到题结果被卡住了。这题题意描述有点问题,数字又不一定都是个位数。。。难道是我英语太差了? 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
*/
uva1653的更多相关文章
随机推荐
- jar导入本地maven库
最近在了解视频监控相关sdk,海康威视官方sdk要求自己手工将fas-data-sdk-1.0-SNAPSHOT.jar导入本地maven库,maven配置文件pom.xml配置如下 <?xml ...
- phpstorm的安装和使用
1下载phpstorm #下载地址 https://www.jetbrains.com/phpstorm/ 2激活并安装 create associations 表示的是以后编辑选择的文件也默认用id ...
- Kubernets 第一讲 初探
1.kubernets的工作流程 (1)开始部署新的应用程序,使用kubectl客户端工具和一个准备好的包含应用程序的Deployment的yaml文件:用户通过kubectl命令将文件的内容发送给A ...
- Android.API.Context.getFilesDir()
1. Context.getFilesDir() http://developer.android.com/reference/android/content/Context.html#getFile ...
- Java中多线程访问冲突的解决方式
当时用多线程访问同一个资源时,非常容易出现线程安全的问题,例如当多个线程同时对一个数据进行修改时,会导致某些线程对数据的修改丢失.因此需要采用同步机制来解决这种问题. 第一种 同步方法 第二种 同步代 ...
- 常用的 composer 命令
一.列表内容 composer composer list二.查看当前镜像源 composer config -l -g [repositories.packagist.org.type] compo ...
- PropertyPlaceholderConfigurer
PropertyPlaceholderConfigurer Spirng在生命周期里关于Bean的处理大概可以分为下面几步: 加载 Bean 定义(从xml或者从@Import等) 处理 BeanFa ...
- python文件读取操作、序列化
1.对文件进行读写操作时,先建立文件句柄 f = open("test.txt","r",encoding="UTF-8") 其中,r为文件 ...
- ASP.NET 在OnClientClick中js方法直接调用Eval绑定字段的数据
最近有一项目中使用到了asp.net的GridView控件.需要在前端被点击某一行数据时,前端获取到改行后台绑定的数据序列号.遍用<%# Bind("ID) %>.<%# ...
- 利用PHP脚本辅助MySQL数据库管理2-表主键表索引
<?php $dbi = new DbMysql; $dbi->dbh = 'mysql://root:mysql@127.0.0.1/coffeetest'; $map = array( ...