HDU 4394 BFS
来源:互联网 发布:js事件流模型 编辑:程序博客网 时间:2024/06/05 08:10
M2%10x=N (x=0,1,2,3....)
给出N,找到最小的满足条件的M
由于:N的个位只由M的个位决定,N十位由M的个位和十位决定,N的百位由M的个位十位百位决定,以此类推
所有从个位开始搜索满足条件的数字即可
#include"stdio.h"#include "string.h"#include "math.h"#include "queue"using namespace std;__int64 flag,n;__int64 make(__int64 x,__int64 dit,__int64 num,__int64 i){ __int64 y,now,j; y=1; for (j=1;j<dit;j++) y*=10; now=x+y*i; if ((now*now%(y*10)/y)==num) return now; return -1;}void bfs(){ queue<__int64>q; __int64 dit,i,cnt,x,now,num; q.push(0); dit=0; flag=-1; while (!q.empty()) { cnt=q.size(); num=n%10; dit++; n/=10; while (cnt--) { x=q.front(); q.pop(); for (i=0; i<=9; i++) { now=make(x,dit,num,i); // x之前所生成的数字,dit当前搜索到第几位,应该位应该匹配的数字,搜索当前位数字为i if (now!=-1) { q.push(now); if (n==0) { if (now<flag|| flag==-1) flag=now; } } } } if (flag!=-1) return ; }}int main(){ __int64 t; scanf("%I64d",&t); while (t--) { scanf("%I64d",&n); if (n==0) { printf("0\n"); continue; } bfs(); if (flag==-1) printf("None\n"); else printf("%I64d\n",flag); } return 0;}
0 0
- HDU 4394 bfs
- hdu 4394(bfs)
- HDU 4394 BFS
- HDU bfs
- HDU 4394 Digital Square (BFS)
- hdu 4394 Digital Square(bfs)
- hdu 4394 - Digital Square (dfs or bfs)
- hdu 1175 bfs
- HDU 1072(BFS)
- HDU 1429(BFS )
- hdu 1026(BFS)
- HDU 4039 BFS
- hdu 1312 bfs
- hdu 1253 三维bfs
- hdu 1242 bfs
- BFS hdu 1072 Nightmare
- HDU 1072 Nightmare BFS
- bfs hdu 1026
- 51单片机学习笔记【九】——红外通信实验
- hdu2222(看一些单词哪些在模式串中出现过)
- Cocos2d-x :什么是锚点?(简单点说:锚点就是图片的原点)
- java内部类,异常--09
- JPA criteria 查询:类型安全与面向对象
- HDU 4394 BFS
- Web安全测试之XSS
- Hadoop学习笔记之---HDFS
- 数据库导入到PowerDesigner中
- Spring Boot和JPA开发的一些坑
- Ubuntu jdk报Picked up JAVA_TOOL_OPTIONS信息解决
- 求一个自然数的二进制中1的个数
- hdu4403A very hard Aoshu problem 线段树
- hdu 2819 二分图匹配