hdu 1973 bfs 素數判斷

2022-06-02 14:39:08 字數 1173 閱讀 2817

題意:給出兩個四位數,現要改變第乙個數中的個,十,百,千位當中的乙個數

使它最終變成第二個數,要求這過程中形成的數是素數,問最少的步驟

題解:素數篩選+bfs

sample input

3

1033 8179

1373 8017

1033 1033

sample output

6

7

0

注意第一位不能變成0即可

1 #include2 #include3 #include4 #include5 #include6 #include7 #include8

using

namespace

std;

9#define mod 1000000007

10const

int inf=0x3f3f3f3f;11

const

double eps=1e-5;12

#define cl(a) memset(a,0,sizeof(a))

13#define ts printf("*****\n");

14const

int maxn=1005;15

intn,m,tt,time;

16struct

node

17st,ed;

2122

bool prime[10005

];23

bool vis[10005

];24

void isprime() 35}

36}37}

38void

bfs()

3954

for(int i=0;i<4;i++) //

4位5570}

71}72}

7374}75

intmain()

7690 }

HDU 1973 BFS 素數打表

思路 先素數打表,把1到10005範圍內的素數找出來,然後把要輸入的兩個數當做字串輸入,然後進行廣搜 廣搜的思路就是,把每一位數都變化一下,存入佇列中,然後不斷的比較,就可以得出結果了!include include include include include include using nam...

hdu1016 DFS 素數判斷

總是不好好審題。總結一下自己不看題容易犯的錯 1.漏掉某個重要條件。如此題的必須為1開頭,之前還有一道迷宮題也是。2.列印格式問題 3.可能是多個樣例輸入 在這點上栽了很多次了。4.不同答案的英文格式問題。此題是最簡單的dfs 素數判斷,素數直接照搬之前學習的乙個單個素數判斷方法,非常強悍 hdu1...

HDU 4255 篩素數 BFS尋最短路徑長度

本題有乙個小trick,雖說給定的數的範圍是 1,10000 但有可能存在一條繞出100 100的矩陣 包含1 10000的數的矩陣 的從起點到達終點的路徑,比完全位於100 100矩陣 包含1 10000的數的矩陣 當中的從起點到達終點的最短路徑的長度還要短,於是,便要擴大矩陣,為特殊情況的搜尋另...