UESTC 方老師與素數

2021-06-26 16:35:17 字數 1230 閱讀 9231

方老師最近很喜歡素數,他想玩乙個遊戲:

現在有兩個

4 位的素數

n 和

m ,你一次可以改變

n 的一位數字,並且改變過後的新數字必須也是個素數,並且也不能有前導

0 。請問使

n 變為

m 最少需要多少步。例如n

=1033

m=8179

那麼可行的變化是:

1033

1733

3733

3739

3779

8779

8179

第一行有乙個整數t(

t≤100)

,代表測試資料的組數。

對於每組資料,每行有兩個

4 位素數n,

m (沒有前導

0 )

對於每一組資料,如果能夠得到

m ,輸出最少的步數,否則輸出impossible

sample input

sample output

3

1033 8179

1373 8017

1033 1033

6

70

搜尋四位數的每一位

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

int n,m;

bool vis[10001];

bool prime[10001];

int bfs()

q.push(t);

continue;

}if(t==m)

int temp;

for (int i=1; i<=9; i++) //千位

}for (int i=0; i<=9; i++) //百位

}for (int i=0; i<=9; i++) //十位

}for (int i=0; i<=9; i++) //個位}}

return -1;

}int main()

else

}for (int i=3; i*i<10000; i++)}}

scanf("%d",&t);

while (t--)

else

}return 0;

}

CDOJ 851 方老師與素數 BFS

方老師最近很喜歡素數,他想玩乙個遊戲 現在有兩個4位的素數n和m,你一次可以改變n的一位數字,並且改變過後的新數字必須也是個素數,並且也不能有前導0。請問使n變為m最少需要多少步。例如n 1033 m 8179 那麼可行的變化是 1033 1733 3733 3739 3779 8779 8179 ...

UESTC 885 方老師買錶 狀壓DP

將方格的擺放分成兩種 1.水平擺放 此時所佔的兩個格仔都記為1。2.豎直擺放 此時底下那個格仔記為1,上面那個記為0。這樣的話,每行都會有乙個狀態表示。定義 dp i s 表示考慮已經填到第i行,這一行狀態為s的方法數 先預處理出所有滿足條件的第一行,然後從第二行開始轉移。最後答案為dp n 1當n...

UESTC 邱老師降臨小行星(記憶化搜尋)

人贏邱老師和任何男生比,都是不虛的。有一天,邱老師帶妹子 們 來到了乙個 n 行 m 列平面的小行星。對於每乙個著陸地點,邱老師總喜歡帶著妹子這樣走 假設著陸地點為 r 0,c0 那麼他們下一步只能選擇相鄰格點,向四周走,即 r 0 1,c0 r 0 1,c0 r 0,c0 1 或 r 0,c0 1...