zoukankan      html  css  js  c++  java
  • poj3126 搜索

     1 #include <iostream>
     2 #include <stdio.h>
     3 #include <stdlib.h>
     4 #include <string.h>
     5 #include <math.h>
     6 #include <queue>
     7 #define MAXN 10000
     8 using namespace std;
     9 
    10 int first,last;
    11 int prime[MAXN];
    12 void dabiao()
    13 {
    14     int i,j;
    15     for(i = 1000;i<MAXN;i++)
    16     {
    17         int flag = 0;
    18         for(j = 2;j<=pow(i,0.5);j++)
    19         {
    20             if(i%j==0)
    21             {
    22                 flag = 1;
    23                 break;
    24             }
    25         }
    26         if(!flag)
    27             prime[i] = 1;
    28     }
    29 }
    30 int bfs()
    31 {
    32     int t[4],dis[MAXN],vis[MAXN];
    33     int i,j,v;
    34     queue<int> q;
    35     memset(dis,0,sizeof(dis));
    36     memset(vis,0,sizeof(vis));
    37     q.push(first);
    38     vis[first] = 1;
    39     while(!q.empty())
    40     {
    41         int x = q.front();
    42         q.pop();
    43         t[0] = x/1000;
    44         t[1] = x%1000/100;
    45         t[2] = x%100/10;
    46         t[3] = x%10;
    47         if(x == last)
    48             return dis[x];
    49         for(i = 0;i<4;i++)
    50         {
    51             int temp = t[i];
    52             for(j = 0;j<10;j++)
    53             {
    54                 if(temp != j)
    55                 {
    56                     t[i] = j;
    57                     v = t[0]*1000+t[1]*100+t[2]*10+t[3];
    58                     if(!vis[v]&&prime[v])
    59                     {
    60                         vis[v] = 1;
    61                         dis[v] = dis[x]+1;
    62                         q.push(v);
    63                     }
    64                     if(v == last)
    65                         return dis[v];
    66                 }
    67                 t[i] = temp;
    68             }
    69         }
    70     }
    71     return -1;
    72 }
    73 
    74 int main()
    75 {
    76     //freopen("caicai.txt","r",stdin);
    77     int n;
    78     scanf("%d",&n);
    79     dabiao();
    80     while(n--)
    81     {
    82         cin>>first>>last;
    83         int num = bfs();
    84         if(num == -1)
    85             cout<<"Impossible
    ";
    86         else cout<<num<<endl;
    87     }
    88     return 0;
    89 }
  • 相关阅读:
    Cheat Engine 创建线程
    Cheat Engine 人造指针
    Cheat Engine 特征码
    Cheat Engine 自动注入
    Cheat Engine 作弊表框架代码
    Cheat Engine 修改汇编指令
    Shell 选择排序
    Shell 冒泡排序
    Selenium API常用方法
    Selenium数据驱动
  • 原文地址:https://www.cnblogs.com/caitian/p/5422546.html
Copyright © 2011-2022 走看看