zoukankan      html  css  js  c++  java
  • poj3126

    被坑了3个小时,本来以为算法错了,谁知道,竟然是素数筛弄错了

    !!!

    #include <iostream>
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    #include <math.h>
    using namespace std;
    int a[10001];
    int v[10001];
    int n,m;
    struct node
    {
    int ans,x;
    }q[100001];
    void bfs()
    {
    memset(v,0,sizeof(v));
    struct node t,f;
    int e=0;
    int s=0;
    t.ans=0;
    t.x=n;
    v[t.x]=1;
    q[e++]=t;
    while(s<e)
    {
    t=q[s++];
    if(t.x==m)
    {
    printf("%d ",t.ans);
    break;
    }
    for(int i=0;i<=9;i++)
    {
    if(v[(t.x/10)*10+i]==0&&a[(t.x/10)*10+i]==1)
    {
    f.x=(t.x/10)*10+i;
    f.ans=t.ans+1;
    q[e++]=f;
    v[(t.x/10)*10+i]=1;
    }
    if(v[(t.x/100)*100+t.x%10+i*10]==0&&a[(t.x/100)*100+t.x%10+i*10]==1)
    {
    f.x=(t.x/100)*100+t.x%10+i*10;
    f.ans=t.ans+1;
    q[e++]=f;
    v[(t.x/100)*100+t.x%10+i*10]=1;
    }
    if(v[(t.x/1000)*1000+(t.x/10)%10*10+t.x%10+i*100]==0&&a[(t.x/1000)*1000+(t.x/10)%10*10+t.x%10+i*100]==1)
    {
    f.x=(t.x/1000)*1000+(t.x/10)%10*10+t.x%10+i*100;
    f.ans=t.ans+1;
    q[e++]=f;
    v[(t.x/1000)*1000+(t.x/10)%10*10+t.x%10+i*100]=1;
    }
    }
    for(int i=1;i<=9;i++)
    {
    if(v[t.x%10+(t.x/10)%10*10+(t.x/10/10)%10*100+i*1000]==0&&a[t.x%10+(t.x/10)%10*10+(t.x/10/10)%10*100+i*1000]==1)
    {
    f.x=t.x%10+(t.x/10)%10*10+(t.x/10/10)%10*100+i*1000;
    f.ans=t.ans+1;
    q[e++]=f;
    v[t.x%10+(t.x/10)%10*10+(t.x/10/10)%10*100+i*1000]=1;
    }
    }
    }
    }
    int main()
    {
    a[0]=0;
    a[1]=0;
    a[2]=1;
    int t=(int )sqrt(10000*1.0);
    for(int i=3;i<10000;i++)
    {
    if(i%2==0)
    a[i]=0;
    else a[i]=1;
    }
    for(int i=3;i<=t;i++)
    {
    if(a[i]==1)
    {
    for(int j=2*i;j<10000;j=j+i)
    a[j]=0;
    }
    }
    int T;
    scanf("%d",&T);
    while(T--)
    {
    scanf("%d%d",&n,&m);
    bfs();
    }
    return 0;
    }

  • 相关阅读:
    Java lamda Stream
    java动态绑定的一点注意
    javascript的一点学习
    阶段总结
    some notes about spring aop
    java 命令notes
    Guava cache
    位运算
    解析JDK 7的动态类型语言支持
    Maven里面多环境下的属性过滤(配置)
  • 原文地址:https://www.cnblogs.com/zhangmingcheng/p/3776196.html
Copyright © 2011-2022 走看看