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当前搜索到第几位,应该位应该匹配的数字,搜索当前位数字为iif (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;
}

HDU 4394 BFS相关推荐

  1. 【HDU 4394】Digital Square(bfs,数位搜索,思维,数学)

    题干: Given an integer N,you should come up with the minimum nonnegative integer M.M meets the follow ...

  2. hdu 5433(bfs+dp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5433 解题思路: dp[i][j][k]表示在(x,y)点,毅力为k时的最小体力.由于每个点可能会走多 ...

  3. hdu 2579 BFS

    http://acm.hdu.edu.cn/showproblem.php?pid=2579 题目大意:给定 r * c 的迷宫,还有一个整数 k .迷宫中"."表示可以走,&qu ...

  4. D - Age of Moyu HDU - 6386 -BFS+DFS分层最短路

    D - Age of Moyu HDU - 6386 题意:双向图,m条边,每条边有一个编号id,而花费就是根据这个id的变化来确定的求1-n的最短路 思路:全值为0,1的图直接bfs按层遍历图找到n ...

  5. hdu 5167 bfs

    因为斐波那契数列增长很快(指数级),所以10Y以内只有不到50个斐波那契数,将这些数字所有可能的乘积存起来查询即可,这里采用bfs+set的方式. 1 #include <iostream> ...

  6. hdu 1026 bfs+记录路径

    题意:从0,0点出发到n-1,m-1点,路上的数字代表要在这个点额外待多少秒,求最短的路 递归输出路径即可 1 #include<cstdio> 2 #include<iostrea ...

  7. hdu 4568 bfs + 状压dp

    //这题的数据是不是有问题... 不考虑宝藏一个也拿不到也能AC... 1 #include "bits/stdc++.h" 2 using namespace std; 3 co ...

  8. hdu 1044 BFS(压缩图)+DFS

    题意:              给你起点,终点,图上有墙有路还有宝物,问你在规定时间内能否能到终点,如果能问最多能捡到多少宝物. 思路:           看完这个题目果断 BFS+三维的mark ...

  9. hdu 1226(bfs+同余剪枝)

    超级密码 Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub ...

最新文章

  1. 【Netty】NIO 缓冲区 ( Buffer ) 组件
  2. 认识并测量Typed DataSet
  3. (面试题)删除在另一个字符串中出现的字符
  4. POJ - 2135 Farm Tour(最小费用最大流)
  5. HTML5实现文件断点续传
  6. Java银行开户,取钱,存钱,查询余额,退出。。。。。
  7. sqlserver 常用存储过程集锦
  8. CVPR2020|无需3D运动数据训练,最新SOTA人体姿势估计方法
  9. ActiveMQ持久订阅设置
  10. 在使用DelphiXE3和SQLite3进行程序开发时,解决最后一个字符乱码的问题
  11. 机器学习笔记最大熵之NER
  12. 手机定位--GPS定位,基站定位,辅助定位
  13. js 无弹框打印_打印预览,关闭窗口等js代码
  14. soff被判3年,软件业是福是祸?
  15. Python GUI编程之PyQt5入门到实战
  16. 适合初学者的java学习网站(1)
  17. 一名优秀的销售人员应该具备哪些素质和能力?
  18. 基于android的电子词典设计_基于Android的电子词典软件的设计与实现 (含外文翻译).doc...
  19. flarum使用随机头像
  20. rtklib-4-周跳探测

热门文章

  1. c语言程序设计教程韩立毛答案,c语言程序设计教程201X韩立毛徐秀芳书后练习题参考答案...
  2. js 中的evel 函数
  3. studiolibrary安装_初学者daz studio中文基础安装布局教程
  4. 可数集合与不可数集合
  5. Flutter和RN对比分析
  6. 长安链大规模数据存储及数据膨胀分析
  7. 分布式跟踪系统(SpringCloudSluth+OpenZipkin)
  8. 手环服务器维修,智能手环解决方案
  9. oracle安装介绍
  10. SpringDataJPA+Hibernate框架源码剖析(六)@PersistenceContext和@Autowired注入EntityManager的区别