POJ 3126 題解 數論素數篩 搜尋

2021-10-22 17:01:36 字數 1124 閱讀 3566

有乙個四位的素數s,每次改變一位,變成另外乙個素數t

要求每次改變後的數還是素數

最少需要改變幾次

time: 1000 ms

memory: 65536 kb

素數篩 先篩出1e5以內的素數

然後bfs搜尋,搜尋改變任意一位後的素數

#include

#include

#include

#include

#include

using

namespace std;

const

int n =

1e5+5;

bool isprime[n]

;bool vis[n]

;vector<

int> prime;

void

getprime()

for(

int j =

0; j < prime.

size()

&& i * prime[j]

< n; j++)}

}}intbfs

(int s,

int t)

int a = x /

1000

;int b =

(x /

100)%10

;int c =

(x /10)

%10;int d = x %10;

for(

int i =

1; i <

10; i++)}

for(

int i =

0; i <

10; i++)}

for(

int i =

0; i <

10; i++)}

for(

int i =

0; i <

10; i++)}

}return-1

;}intmain()

else

}return0;

}

poj 3126 容器 素數篩法

主要路徑 時間限制 1000ms 記憶體限制 65536 k 共提交 22998 接受 12745 描述 它是乙個不時改變這樣的事情,為了不讓敵人在黑暗中的安全問題。但你看,我選擇了我的號碼 1033年很好的理由。我是總理,你知道 我知道,所以你的新號碼 8179 也是乙個素數。你將不得不在你辦公室...

POJ3126素數路徑

注意素數的判斷演算法不要馬虎寫錯 bfs,ac 如下 include includeusing namespace std int vis 10000 判斷節點是否入隊過 struct node link 10000 int cal 4 int loc 4 10 判斷某乙個數字能否重新被使用,0表示...

POJ3126 素數路徑(BFS)

每日打卡 1 1 題目大意 輸入乙個素數,變換到另乙個素數,但期間一次只能改變乙個數字,並且改變量字後的數依然是素數。題解 主體是bfs,先用尤拉篩法把素數表打出來,然後依次修改每一位數,判斷修改後的數是否為素數。include include include include include inc...