洛谷 P1037 產生數

2022-07-30 05:51:13 字數 908 閱讀 4951

給出乙個整數n(n<=2000)和k個變換規則(k≤15)。規則:

① 1個數字可以變換成另1個數字;

② 規則中,右邊的數字不能為零。

例如:n=234,k=2規則為

2 → 5

3 → 6

上面的整數234經過變換後可能產生出的整數為(包括原數)234,534,264,564共4種不同的產生數。求經過任意

次的變換(0次或多次),能產生出多少個不同的整數。僅要求輸出不同整數個數。nk

x1 y1

x2 y2

… …xn yn

格式為乙個整數(滿足條件的整數個數)。

234

22 5

3 6

4

這道題,我用的string存的數字,用map對映是否找到過,用vector記錄變化規則,用queue當dfs來查詢,最後記得特判最後一位0的情況。

1 #include2

using

namespace

std;

3 vector v[1001

];4 mapsj;

5 queue q;

6int

k,ans;

7stringn;8

intmain()

917 ans++;//

本來自己就是一種方法

18 sj[n]=1;//

標記 19

q.push(n);

20while(!q.empty())

2137 s[i]=num+'

0';//

還原 38}39

}40}41 cout輸出 42

return0;

43 }

洛谷 P1037 產生數

description 給出乙個整數 n n 10 30 和 k 個變換規則 k 15 規則 一位數可變換成另乙個一位數 規則的右部不能為零。例如 n 234。有規則 k 2 2 5 3 6 上面的整數 234 經過變換後可能產生出的整數為 包括原數 234 534 264 564 共 4 種不同的...

洛谷P1037產生數

給出乙個整數n n 2000 和k個變換規則 k 15 規則 1個數字可以變換成另1個數字 規則中,右邊的數字不能為零。例如 n 234,k 2規則為 2 5 3 6 上面的整數234經過變換後可能產生出的整數為 包括原數 234,534,264,564共4種不同的產生數。求經過任意次的變換 0次或...

洛谷P1037 產生數

題目鏈結 本著 水題不可大做 的原則,我直接字串hash 爆搜,成功爆棧。我們發現,依次搜尋每一位能取到的數字個數,最後乘起來即可 乘法原理 然後又爆了乙個點。long long存不下!於是我面向資料程式設計,看到輸出的數後面有很多0 就產生了這個神奇的騙分做法 include include in...