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;
}

最新文章

  1. Mysql学习笔记(三)对表数据的增删改查。
  2. Extjs3 + swfUpload实现多文件上传控件
  3. cocos2dx loading界面 预加载资源 与 资源释放
  4. TYVJ P1063 数字串 Label:双指针 线性扫描
  5. php判断用户浏览器类型是否为微信浏览器
  6. cocos2d-x 使用Lua
  7. 每天一个linux命令(1):which命令(转)
  8. Mysql的列索引和多列索引(联合索引)
  9. Flume NG中的Kafka Channel
  10. How Many Shortest Path
  11. windows下cmd导入与导出mysql 数据库
  12. 201521123059 《Java程序设计》第十四周学习总结
  13. ASP.Net Core on Linux (CentOS7) 共享第三方依赖库部署
  14. Python变量和常量
  15. git 创建删除分支
  16. Centos yum国内源及配置含义
  17. Windows Server 2008 R2 如何关闭防火墙
  18. 小程序学习-iPhone X适配
  19. Linux常用命令详解-目录文件操作命令
  20. WinForm 多语言处理

热门文章

  1. 国内物联网平台初探(三) ——QQ物联&#183;智能硬件开放平台
  2. 2.2Shiro架构
  3. day63-webservice 04.JaxWsServerFactoryBean和SOAP1.2
  4. shp系列(二)——利用C++进行shp文件的读(打开)
  5. B - Even Odds
  6. Solr.NET快速入门(二)
  7. LCA 离线的Tarjan算法 poj1330 hdu2586
  8. 腾讯云TrustAsia DV SSL CA证书的申请及使用
  9. 杭电 1040 As Easy As A+B 【排序】
  10. RxSwift學習教程之基礎篇