繼續我的刷題路;
題目描述 description
給出乙個整數 n(n<10^30) 和 k 個變換規則(k<=15)。
規則:
一位數可變換成另乙個一位數:
規則的右部不能為零。
例如:n=234。有規則(k=2):
2-> 5
3-> 6
上面的整數 234 經過變換後可能產生出的整數為(包括原數):
234
534
264
564
共 4 種不同的產生數
問題:
給出乙個整數 n 和 k 個規則。
求出:
經過任意次的變換(0次或多次),能產生出多少個不同整數。
僅要求輸出個數。
輸入描述 input description
鍵盤輸人,格式為:
n k
x1 y1
x2 y2
… …
xn yn
輸出描述 output description
螢幕輸出,格式為:
乙個整數(滿足條件的個數)
樣例輸入 sample input
234 2
2 5
3 6樣例輸出 sample output
4資料範圍及提示 data size & hint
看題意,可以想到組合數的問題,,
不過,,
我不會
2333333333333333333
所以 我寫了搜尋
因為 只有 0-9 10個數嘛
每個數有一定的k種變化
用f[i]表示所以最後的答案就是每一位上的數 的變化次數之積;
所以只需要dfs處理出每個數可以擴充套件到的數的個數就好了~~
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define inf 1000000000
#define fi first
#define se second
#define n 100005
#define p 1000000007
#define debug(x) cerr<<#x<<"="<#define mp(x,y) make_pair(x,y)
using
namespace
std;
int n,m,f[101],q[10][10],a[1010];
bool v[10];
long
long sum[10];
long
long ans=1;
long
long dfs(long
long x)
}return ansm;
} int main()
cin>>n;
for(long
long i=1;i<=n;i++)
for(long
long i=1;i<=k;i++)
cout
《相信不難理解,就不寫注釋了。
1009 數字黑洞
給定任乙個各位數字不完全相同的4位正整數,如果我們先把4個數字按非遞增排序,再按非遞減排序,然後用第1個數字減第2個數字,將得到 乙個新的數字。一直重複這樣做,我們很快會停在有 數字黑洞 之稱的6174,這個神奇的數字也叫kaprekar常數。例如,我們從6767開始,將得到 7766 6677 1...
DOTCPP 問題1009心得
思路二 提交時顯示執行錯誤50 思路三 看似沒有問題,實際oj會報錯 給出乙個不多於5位的整數,要求 1 求出它是幾位數 2 分別輸出每一位數字 3 按逆序輸出各位數字,例如原數為321,應輸出123 輸入乙個不大於5位的數字,輸出三行 第一行 位數 第二行 用空格分開的每個數字,注意最後乙個數字後...
1009 安全路徑
題目描述 衛斯理 經常提及外星人,比如藍血人。在土星星球有很多城市,每個城市之間有一條或多條飛行通道,但是並不是所有的路都是很安全的,每一條路有乙個安全係數 s,s 是在 0和1 間的實數 包括0 1 一條從 u 到 v 的通道 p 的安全度為 safe p s e1 s e2 s ek e1,e2...