HDU1226 超級密碼 BFS

2021-07-10 19:00:43 字數 632 閱讀 8562

由於n最大也只有5000,則對於列舉的密碼s,s%n的狀態也只有5000種。所以每乙個列舉到的狀態,開兩個內容,乙個表示密碼的字串,乙個表示模n的餘數,當餘數為0的時候,說明找到密碼。

#include

#include

#include

#include

#include

using

namespace

std;

struct node

node(string a,int b)

};string res;

bool num[20],vis[5050],flag;

char str[3];

int a,n,c,m;

void init()

void bfs()

while(!q.empty())

for(int i = 0; i < 16; i++)

if(num[i])

}if(flag) cout

printf("give me the bomb please\n");

}int main()

if(n == 0)

bfs();

}}

hdu1226 超級密碼 bfs

思路 因為n 5000 所以方案個數也只有5000個,可以用bfs來做。一開始挺糾結怎麼做,但是上網一看別的大牛的 一下子就恍然大悟豁然開朗,如同撥開雲霧見青天 o include include include include using namespace std const int maxn ...

hdu 1226 超級密碼 bfs

c 超級密碼 time limit 10000msmemory limit 32768kb64bit io format i64d i64u submit status description ignatius花了乙個星期的時間終於找到了傳說中的寶藏,寶藏被放在乙個房間裡,房間的門用密碼鎖起來了,在...

HDU1226 超級密碼(BFS)

題目大意 求乙個數,它是由m個數字組成,是c進製,且是n 10進製整數 的整數倍。求這個數的最小值。例如n 22,c 10,m 3,三個數字是7,0,1 那麼滿足由7,0,1組成的10進製數且是22的倍數的最小值是110。由於求的數是最小的,用bfs比dfs更好一些。用bfs實現由數字組成的數按從小...