前言
發現一道好題目。題目廣搜,需要絕妙的數學證明與剪枝,思維含量較大,搜尋玩出花來。
若在比賽中肯定想不出正解(話說這篇題解也不是最優解)。我的數學太弱了……抽屜原理都不知道……
看題解吧: )
給定乙個自然數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,電腦直接宕機了 電腦效能太差 沒辦法啊!開機重啟,中間又花費了很多時間,我不死心,又重新測...