給出乙個整數n(n<1030)n(n<10^)n(n<1030)和k k k個變換規則(k≤15)(k \le 15)(k≤15)。規則:一位數可變換成另乙個一位數:規則的右部不能為零。例如:n=234n=234n=234。有規則(k=2):2->5
3->6
上面的整數234經過變換後可能產生出的整數為(包括原數):
234534
264564
共4 種不同的產生數問題:給出乙個整數 n 和k 個規則。求出:經過任意次的變換(0次或多次),能產生出多少個不同整數。僅要求輸出個數。輸入格式鍵盤輸入,格式為:nkn knk
x1y1x_1 y_1x1y1
x2y2x_2 y_2x2y2
… …xnynx_n y_nxnyn輸出格式螢幕輸出,格式為:111個整數(滿足條件的個數):輸入輸出樣例輸入 #1 複製 234 2
2 53 6
輸出 #1 複製 4
思路:求出n
nn的每一位的數字可以轉換成其他數字的個數(包括它本身),那麼答案就是這個序列的累乘。個數可以用flo
yd
floyd
floy
d fs
dfsdf
s,其實複雜度都差不多,但是沒想到flo
yd
floyd
floy
d的那個演算法。注意用高精度。
#include
using
namespace std;
typedef
long
long ll;
int cnt[15]
;vector<
int> vec[15]
;bool vis[15]
;char s[35]
;int ans[
105]
;int n,tmp,len=1;
void
mul(
int x)
while
(te!=0)
ans[
++len]
=te%
10,te/=10
;}void
dfs(
int u)
}int
main()
ans[1]
=1;for
(int i=
0;i<=
9;i++
)int nn=
strlen
(s);
for(
int i=
0;i)mul
(cnt[s[i]
-'0'])
;for
(int i=len;i>=
1;i--
)printf
("%d"
,ans[i]);
return0;
}
組合數學 洛谷
p1287盒子與球 題意 現有 r 個互不相同的盒子和 n 個互不相同的球,要將這 n 個球放入r 個盒子中,且不允許有空盒子。請求出有多少種不同的放法。資料範圍 對於 100 的資料,保證 0 r n 10,且答案小於 2 31.分析 n個球,從中取出乙個球,有倆種放法,1 bi獨佔乙個盒子,那麼...
洛谷P2822 組合數問題
題目描述 組合數 cmn m在上,n在下 表示的是從 n個物品中選出 m 個物品的方案數。舉個例子,從 1,2,3 三個物品中選擇兩個物品可以有 1,2 1,3 2,3 這三種選擇方法。根據組合數的定義,我們可以給出計算組合數 cmn的一般公式 其中 n 1 2 n 特別地,定義 0 1。小蔥想知道...
洛谷 P2822 組合數問題
已知組合數 從 n 個物品中選擇 m 個物品的方案數 c m n c n,m binom frac 其中 n 1 times 2 times 3 times cdots times n specially define 0 1 給定 n m k 對於所有的 0 le i le n 0 le j le...