有乙個四位的素數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...