hdu 1973 Prime Path (bfs)

小记:被0坑了一把


思路:bfs最小步数,枚举每一位数,先提前打好素数表。 注意的地方就是0。


代码:

#include 
#include 
#include 
#include 
using namespace std;

const int MAX_ = 10001;

bool vis[MAX_], v[MAX_];
int pri[MAX_];
int M,n,k;

void prime(){
    for(int i = 2; i < MAX_; ++i){
        if(!vis[i]){
            pri[M++] = i;
        }
        for(int j = 0; j < M && i * pri[j] < MAX_; ++j){
            vis[i * pri[j]] = 1;
            if(i % pri[j] == 0)break;
        }
    }
}

void bfs(){
    queueq;
    int f[4];
    memset(v,0,sizeof(v));
    q.push(n);
    q.push(0);
    while(!q.empty()){
        int cur = q.front(), step;
        q.pop();
        step = q.front();
        q.pop();
        if(cur == k){
            cout<>T;
    while(T--) {
        cin>>n>>k;
        bfs();

    }
    return 0;
}


你可能感兴趣的:(hdu)