HDOJ - 4474 简单分析后,BFS
若k=a*10+b...那么k%m=(a*10)%n+b%n...利用这个性质就可以BFS了...一位一位的搜...
当出现对n取余为0...则找到答案...
由于n最大为10000,而搜的时候,每个余数之考虑其第一个存在的数(最小的)..所以时间上完全ok....
Program:
#include<iostream>
#include<stdio.h>
#include<cmath>
#include<string.h>
#include<algorithm>
#include<queue>
#include<stack>
#define ll long long
#define oo 1000000007
#define MAXN 10005
using namespace std;
struct node
{string s;int m;
};
string ans;
bool f[12],used[MAXN];
int n;
queue<node> myqueue;
void BFS()
{int i;node h,p; ans="-1";memset(used,false,sizeof(used));while (!myqueue.empty()) myqueue.pop();for (i=1;i<=9;i++)if (f[i] && !used[i%n]) {h.m=i%n;h.s=i+'0'; myqueue.push(h);used[h.m]=true;if (h.m==0){ans=h.s;return;}} while (!myqueue.empty()){ h=myqueue.front();myqueue.pop();for (i=0;i<=9;i++)if (f[i] && !used[(h.m*10+i)%n]){p.m=(h.m*10+i)%n;p.s=h.s+char(i+'0');myqueue.push(p);used[p.m]=true; if (p.m==0){ans=p.s;return;}}}return;
}
int main()
{ int m,x,t=0;while (~scanf("%d",&n)){ memset(f,true,sizeof(f)); scanf("%d",&m);while (m--){scanf("%d",&x);f[x]=false;}BFS(); printf("Case %d: %s\n",++t,ans.c_str()); }return 0;
}
HDOJ - 4474 简单分析后,BFS相关推荐
- [EntLib]微软企业库5.0 学习之路——第七步、Cryptographer加密模块简单分析、自定义加密接口及使用—上篇...
在完成了后,今天开始介绍企业库中的新模块:Cryptographer(加密模块),这个模块在日常的大多数项目的作用非常重要,例如:网站会员密码.身份证号.网站配置等,通过对信息进行加密可以保证项目数据 ...
- FFmpeg资料来源简单分析:libswscale的sws_getContext()
===================================================== FFmpeg库函数的源代码的分析文章: [骨架] FFmpeg源码结构图 - 解码 FFmp ...
- Mac与Phy组成原理的简单分析
Mac与Phy组成原理的简单分析 2011-12-28 15:30:43 //http://blog.chinaunix.net/uid-20528014-id-3050217.html 本文乃fir ...
- Hessian 源码简单分析
Hessian 源码简单分析 Hessian 是一个rpc框架, 我们需要先写一个服务端, 然后在客户端远程的调用它即可. 服务端: 服务端通常和spring 做集成. 首先写一个接口: public ...
- 基于OK6410开发板Uboot源码简单分析
2018-04-07 OK6410开发板是基于三星S3C6410芯片设计的一款开发板,资源比较丰富,可是想要使用这些资源就需要编写相应的启动引导程序,即BootLoader.当然,想要自己凭空写出Bo ...
- Android 系统(261)---SIM卡不识或者掉卡简单分析
SIM卡不识或者掉卡简单分析 1. 识卡大体过程 2.不识卡问题 不识卡的主要原因: ①Modem发生错误,异常或者重启. ②没有收到卡回的ATR ③有收到卡回的ATR,但是后面跟卡通信出现异常 ...
- modem (1)---手机主叫的信道流程与Modem Log简单分析
手机主叫的信道流程与Modem Log简单分析 层三信令里看到建立RRCCMM层什么的到底是什么意思?建立这些层有什么用? 从协议栈的角度来说,RR属于接入层,而MM和CC都属于非接入层即NAS. R ...
- Linux系统调用getuid的简单分析
陈铁 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000. Linux内核启 ...
- 爬虫入门-京东评论爬取和简单分析[学习笔记]
随便点击一个商品,我点的是"https://item.jd.com/3533885.html" 查看评论是否动态数据:点击改变评论页数(图中1处),网址(图中2处)不会变,说明是动 ...
最新文章
- 零起点学算法10——求圆柱体的表面积
- docker分离部署lnmp
- python打地鼠游戏教程_Python入门小游戏,炫酷打地鼠教程第二部分,都是干货
- 基于Leaflet和高德Web API扩展地理编码服务
- windows2003 DNS服务器配置
- Cocos2d-x 寻路算法解析(一): 距离优先
- LOJ116 有源汇有上下界最大流(上下界网络流)
- 用Zend Encoder加密PHP文件和PHP 优化配置
- 浅谈equals与==
- qrcode生产带logo_比亚迪换新标?新Logo的含义你了解吗?
- 移动WEB开发之Safari、QQ、UC、360浏览器的私有Meta属性
- 华为太极magisk安装教程_Magisk字体包制作、字体包导入及导入失败等详细教程
- 关闭Apple Watch 上的激活锁的方法
- MD5(JavaScript)
- 蓝牙诊断工具_蓝牙故障诊断和使用指南
- Win10/UWP 扫描二维码
- SQL语句在Mysql中是如何被执行的?
- 18、CSS基础——属性值的计算过程
- 小红书引流软件有哪些
- Python 类变量,成员变量,静态变量,局部变量