您现在的位置是:首页 > 学习之路 > ACM||算法ACM||算法

POJ-3126 Prime Path

卞振伟2019-07-25【ACM||算法】人已围观

简介POJ-3126 Prime Path
BFS
1033->8179每次移动一位,每次四位数均是素数,最快移动到目标素数的时间
普通

#include <iostream>
#include <set>

using namespace std;
string a, b, c;
set<string> s;
int n, t, m;

void dfs(){
    string mo;
    int cot = 0;
    while(1){
        mo = "";
        for(int i = 0; i < n; ++i){
            mo = mo + b[i] + a[i];
        }
        if(s.find(mo) == s.end())
            s.insert(mo);
        else
            break;
        cot ++;
        if(mo.compare(c) == 0){
            cout << m << " " << cot << endl;
            return ;
        }
        a = mo.substr(0,n);
        b = mo.substr(n,2*n);
    }
    cout << m << " " << -1 << endl;
}

int main(){
    cin >> t;
    for(m = 1; m <= t; ++m){
        s.clear();
        cin >> n;
        cin >> a >> b >> c;
        dfs();
    }
}

Tags:ACM   编程   个人   题解   算法   C|C++

很赞哦! ()

文章评论

站点信息

  • 建站时间:2018-11-25
  • 网站程序:帝国CMS7.5
  • 文章统计:118篇文章
  • 标签管理标签云
  • 统计数据百度统计
  • 网站地图XML网站地图
  • 微信公众号:扫描二维码,关注我的公众号
  • GitHub:扫描二维码,关注我的GitHub

客服在线

QQ客服

客服微信扫码

服务时间

周一至周日 9:00-21:00