zoukankan      html  css  js  c++  java
  • [kuangbin带你飞]专题一 简单搜索

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<algorithm>
     5 #include<queue>
     6 using namespace std;
     7 struct node
     8 {
     9     int x;
    10     int s;
    11 };
    12 bool prim[10005];
    13 bool vis[10005];
    14 int chr(int x,int i,int j)
    15 {
    16     int b,s = 1;
    17     int tmp = 0;
    18     for(int z = 1; z<= 4; z++)
    19     {
    20         b = x%10;
    21         x/=10;
    22         if(i==z)    b = j;
    23         tmp+=s*b;
    24         s*=10;
    25     }
    26     return tmp;
    27 }
    28 int main()
    29 {
    30 //    freopen("in.in","r",stdin);
    31     for(int i = 2; i <= 10000; i++)
    32     {
    33         if(prim[i])    continue;
    34         for(int j = 2; j <= 10000/i; j++)
    35             prim[i*j] = true;
    36     }
    37     queue<node>q;
    38     node s, t;
    39     int n, a, b, tmp;
    40     bool flag;
    41     scanf("%d",&n);
    42     while(n--)
    43     {
    44         flag = false;
    45         memset(vis,false,sizeof(vis));
    46         scanf("%d%d",&a,&b);
    47         s.x = a;
    48         s.s = 0;
    49         q.push(s);
    50         while(q.size())
    51         {
    52             s = q.front();
    53             q.pop();
    54             t.s = s.s + 1;
    55             vis[s.x] = true;
    56             if(s.x == b)
    57             {
    58                 flag = true;
    59                 break;
    60             }
    61             for(int i = 1; i <= 4; i++)
    62                 for(int j = 0; j <= 9; j++)
    63                 {
    64                     if(i==4 && j==0)    continue;
    65                     t.x = chr(s.x,i,j);
    66                     if(prim[t.x] || vis[t.x])    continue;
    67                     q.push(t);
    68                 }
    69         }
    70         while(q.size())    q.pop();
    71         if(flag)    cout<<s.s<<endl;
    72         else        cout<<"Impossible"<<endl;
    73     }
    74     return 0;
    75 }
  • 相关阅读:
    Linux下安装mysql(1)(CentOS)
    shell 运算符
    shell $*与$@的区别
    XMind破解
    在CentOS系统上将deb包转换为rpm包
    一次与流氓软件的斗争,浏览器主页被锁定
    dropzone上传文件
    KindEditor4.1.10,支持粘贴图片
    bootstrap paginator使用简述
    sendkeys && appactivate
  • 原文地址:https://www.cnblogs.com/you-well-day-fine/p/4255979.html
Copyright © 2011-2022 走看看