• POJ 3126 Prime Path 广度优先搜索 难度:0


    http://poj.org/problem?id=3126

    搜索的时候注意

    1:首位不能有0

    2:可以暂时有没有出现在目标数中的数字

    #include <cstdio>
    #include <cstring>
    #include <queue>
    using namespace std;
    const int maxn=1e4+5;
    const int inf=0x7fffffff;
    bool prim[maxn];
    void judge(){
            prim[2]=true;
            for(int i=3;i<maxn;i+=2)prim[i]=true;
            for(int i=3;i<maxn;i+=2){
                    if(prim[i]){
                            for(int j=3;j*i<maxn;j+=2){
                                    prim[j*i]=false;
                            }
                    }
            }
    }
    int dp[maxn],s,e;
    queue<int> que;
    const int base[4]={
            10,100,1000,10000
    };
    int change(int sta,int ind,int num){
            int sub=sta%(base[ind]);
            if(ind>0)sub-=sub%base[ind-1];
            sta-=sub;
            sta+=num*base[ind]/10;
            return sta;
    }
    void cal(){
            for(int i=0;i<maxn;i++)dp[i]=inf;
            while(!que.empty())que.pop();
            dp[s]=0;
            que.push(s);
            while(!que.empty()){
                    int f=que.front();que.pop();
                    if(f==e)return ;
                    for(int i=0;i<4;i++){
                            for(int j=0;j<10;j++){
                                    if(i==3&&j==0)continue;
                                    int to=change(f,i,j);
                                    if(!prim[to]||dp[to]!=inf)continue;
                                    dp[to]=dp[f]+1;
                                    que.push(to);
                            }
                    }
            }
    }
    int main(){
            int T;
            scanf("%d",&T);
            judge();
            while(T--){
                    scanf("%d%d",&s,&e);
                    cal();
                    printf("%d
    ",dp[e]);
            }
    }
    

      

  • 相关阅读:
    java积累
    mybatis
    Netty
    springcloud相关笔记整理
    java基础总结笔记
    读书笔记-RocketMQ实战与原理解析
    读书笔记-kafka权威指南
    读书笔记-rabbitmq实战指南
    Centos 部署ServiceDesk
    IDEA将新建项目上传至GitLab
  • 原文地址:https://www.cnblogs.com/xuesu/p/4337980.html
Copyright © 2020-2023  润新知