51nod 01組成的N的倍數 題解

2022-09-20 02:33:13 字數 686 閱讀 3522

前言

發現一道好題目。題目廣搜,需要絕妙的數學證明與剪枝,思維含量較大,搜尋玩出花來。

若在比賽中肯定想不出正解(話說這篇題解也不是最優解)。我的數學太弱了……抽屜原理都不知道……

看題解吧: )

給定乙個自然數n,找出乙個m,使得m>0且m是n的倍數,並且m的10進製表示只包含0或1。求最小的m。

例如:n = 4,m = 100。

輸入輸入1個數n。(1≤n≤106)

輸出輸出符合條件的最小的m。

輸入樣例

4輸出樣例

100需要更強大的演算法,我也不會……

code

#include#includeusing namespace std;

const int n = 1e6 + 10;

struct node path[n];

int n;

bool vis[n];

queueq;

void bfs() ;

vis[1] = 1;

q.push(1);

while (!q.empty()) ;

vis[y] = 1;

q.push(y);

}} }

}void print(int x)

int main()

51 nod 1109 01組成的N的倍數

1109 01組成的n的倍數 基準時間限制 1 秒 空間限制 131072 kb 分值 40 難度 4級演算法題 給定乙個自然數n,找出乙個m,使得m 0且m是n的倍數,並且m的10進製表示只包含0或1。求最小的m。例如 n 4,m 100。input 輸入1個數n。1 n 10 6 output ...

51Nod 1109 01組成的N的倍數

1109 01組成的n的倍數 基準時間限制 1 秒 空間限制 131072 kb 分值 40 難度 4級演算法題 給定乙個自然數n,找出乙個m,使得m 0且m是n的倍數,並且m的10進製表示只包含0或1。求最小的m。例如 n 4,m 100。input 輸入1個數n。1 n 10 6 output ...

51Nod 1109 01組成的N的倍數

題目鏈結 思路 一開始看的到這個題時,想都沒想直接乙個暴力上去了,結果很顯然。再後來做完後面的題,在回看這個題時,想到了廣搜。寫乙個簡單 沒剪枝 的廣搜,自己隨便測試一下,乙個9能測出來,然後直接就上了5個9,電腦直接宕機了 電腦效能太差 沒辦法啊!開機重啟,中間又花費了很多時間,我不死心,又重新測...