2019-01-28POJ - 3126

include<iostream>

include<cstring>

using namespace std;
class number
{public:
long long p; long long s;
};
long long biao[10000];
bool biaoo(long long a)
{
if (a == 2 || a == 3)
{
return 1;
}
if (a % 2 == 0)
return 0;
for (int i = 2; i*i <= a; i++)
{
if (a%i == 0)return 0;
}
return 1;
}
bool visit[20000];
number queue[20000];
long long bfs(long long a, long long b)
{
memset(visit, 0, sizeof(visit));
long long tou=0, wei=0;
queue[0].p = a;
queue[0].s = 0;
visit[a] = 1;
wei++;
while (tou < wei)
{
number tis = queue[tou];
tou++;//可以放在最后面;
if (tis.p == b)
{
return tis.s;
}
for (long long i = -(tis.p % 10); tis.p % 10 + i >= 0 && tis.p % 10 + i <= 9; i++)
{
long long x = tis.p + i;
if (x != tis.p && visit[x] == 0 && biao[x] == 1)
{
visit[x] = 1;
queue[wei].p = x;
queue[wei].s = tis.s+ 1; wei++;

        }
    }
    for (long long i = -((tis.p/10) % 10); (tis.p / 10) % 10 + i >= 0 && (tis.p / 10) % 10 + i <= 9; i++)
    {
        long long x = tis.p + i*10;
        if (x != tis.p && visit[x] == 0 && biao[x] == 1)
        {
            visit[x] = 1;
            queue[wei].p = x;
            queue[wei].s = tis.s + 1; wei++;

        }
    }
    for (long long i = -((tis.p/100) % 10); (tis.p / 100) % 10 + i >= 0 && (tis.p / 100) % 10 + i <= 9; i++)
    {
        long long x = tis.p + i*100;
        if (x != tis.p && visit[x] == 0 && biao[x] == 1)
        {
            visit[x] = 1;
            queue[wei].p = x;
            queue[wei].s = tis.s + 1; wei++;

        }
    }
    for (long long i = -((tis.p/1000))+1; (tis.p / 1000) + i > 0 && (tis.p / 1000)  + i <= 9; i++)
    {
        long long x = tis.p + i*1000;
        if (x != tis.p && visit[x] == 0 && biao[x] == 1)
        {
            visit[x] = 1;
            queue[wei].p = x;
            queue[wei].s = tis.s + 1; wei++;
        }
    }
    
}
return -1;

}

int main()
{
for (int i = 1000; i <= 10000; i++)
{
biao[i]= biaoo(i);
}
long long n,a,b;
cin >> n;
while (n--)
{
cin >> a >> b;
if (bfs(a, b) == -1)
cout << "Impossible" << endl;
else
cout << bfs(a, b)<<endl;

}

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些閱讀 2,142評(píng)論 0 2
  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi閱讀 7,854評(píng)論 0 10
  • 各校歷年復(fù)試機(jī)試試題 清華、北大、華科試題詳細(xì)筆記部分,少筆記部分與少數(shù)leetcode【含個(gè)人整理筆記】 一、詳...
    AIM外星人閱讀 1,328評(píng)論 0 1
  • 王文娟 http://www.itdecent.cn/p/b360a4b3d195?utm_campaign=h...
    娟妹紙李娟閱讀 147評(píng)論 0 0
  • 今天,我和小美一起玩。第一個(gè)游戲拍電影??墒俏覀儧]拍好。第二個(gè)游戲成功了是燒烤。它的材料是木棍,果子,和樹葉。準(zhǔn)備...
    霽桉閱讀 300評(píng)論 0 2

友情鏈接更多精彩內(nèi)容