題意:破解一套1-6位長度密碼的系統,尋找這樣乙個序列:對於n位的密碼10^n+n-1長度的連續的長為n的串能夠列舉完所有的密碼。
解法:構圖之後直接dfs會超記憶體,因此需要使用棧來實現。調了很久。
**如下:
#include #include#include
#include
#include
using
namespace
std;
int n, mod, head[100005
];int
idx, lim, edge, top;
int stk[1000100
];struct
edge e[
1000100]; //
每個節點只能夠引出10條邊
char vis[1000100
];void insert(int a, int
b) void
dfs()
for (int i = head[v]; i != -1; i =e[i].next)
}if (!flag)
}}int
main()
idx = top = 0
; memset(head,
0xff, sizeof
(head));
memset(vis,
0, sizeof
(vis));
lim = 1
;
for (int i = 1; i < n; ++i)
edge = lim * 10
; mod = lim / 10; //
mod用來提取後後幾位
for (int i = 0; i < lim; ++i)
}dfs();
for (int i = 0; i < top-1; ++i)
printf("%d
", stk[top-1
]);
for (int i = 1; i < n; ++i)
puts(
"");
}return0;
}
POJ 1780 Code 尤拉迴路 模擬棧
poj 1780 code 尤拉迴路 模擬棧 題意 題意較複雜 大致思想是給你乙個n,表示乙個由0 9數字構成的n位密碼.這個解鎖過程如下 鎖一直讀入所有內容.只要當它最後讀入的n個數字與密碼吻合,那麼就表示解鎖了.現在要你輸出乙個長度為10 n n 1的數字序列,這個數字序列包括了n位密碼的所有可...
poj 2337 Catenyms 尤拉路徑
poj 2337 題意 給你一些單詞,單詞a的結尾若等於單詞b的開頭,就可以連線ab,要求把所有單詞連線起來,如果情況有多種,要求字典序最小,如果不能連線所有單詞,輸出 思路 這個題看起來是求哈密頓路,實則求尤拉路,把每個單詞的開頭和結尾當做一條邊連線起來,那麼在這個有向圖中,存在尤拉路則有解,不過...
poj 2337 Catenyms 尤拉路徑
題意 給定一些單詞,假設乙個單詞的尾字母與還有乙個的首字母同樣則能夠連線。問能否夠每乙個單詞用一次,將全部單詞連線,能夠則輸出字典序最小的序列。bin 神的板子 include include include include include include include include inclu...