UVA11375火柴 遞推 大數

2022-09-05 01:36:13 字數 1013 閱讀 7197

題意:

給你n根火柴,問你能組成多少種數字,比如3根可以組成1或者7,組成的數字中不能有前導0,

思路:我們開乙個陣列,d[i]記錄用i跟火柴可以組成多少種數字,則更新狀態是這樣的

d[i+c[j]] += d[i], c[j]就是組成數字j要用的火柴數,這樣跟新相當於是在模擬寫數字,但是有一點就是不能以0開頭,左後當火柴數大於等於6的時候就可以在總答案上+1,表示可以構成乙個單獨的0(因為之前沒有0開頭的,所以要+1補回來),最後答案就是

ans[n] = d[1] + d[2] + d[3] + .... + d[n],因為火柴可以不全部用完,還有就是資料比較大,要用大數模擬,這個就不解釋了。

#include

#include

#define n 2000 + 5

int d[n][1000];

int ans[n][1000];

void solve()

;memset(d ,0 ,sizeof(d));

d[0][1] = 1;

for(i = 0 ;i <= 2000 ;i ++)

for(j = 0 ;j <= 9 ;j ++)}}

for(i = 1 ;i <= 2000 ;i ++)

//ans[i] = ans[i-1] + d[i];

for(j = 1 ;j <= 888 ;j ++)

ans[i][j] = ans[i-1][j] + d[i][j];

for(j = 1 ;j <= 888 ;j ++)

}for(i = 6 ;i <= 2000 ;i ++)}}

int main ()

for(;i >= 1;i --)

printf("%d" ,ans[n][i]);

printf("\n");

}return 0;

}  

1137 矩陣乘法

1137 矩陣乘法 基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 給出2個n n的矩陣m1和m2,輸出2個矩陣相乘後的結果。input 第1行 1個數n,表示矩陣的大小 2 n 100 第2 n 1行,每行n個數,對應m1的1行 0 m1 i 1000 第n 2 2n ...

Wikioi P1137 計算係數

題目描述 description 給定乙個多項式 ax by k,請求出多項式展開後x n y m項的係數。輸入描述 input description 共一行,包含 5 個整數,分別為a,b,k,n,m,每兩個整數之間用乙個空格隔開。輸出描述 output description 輸出共 1 行,...

CODEVS 1137 計算係數

題目描述 description 給定乙個多項式 ax by k,請求出多項式展開後x n y m項的係數。輸入描述 input description 共一行,包含 5 個整數,分別為a,b,k,n,m,每兩個整數之間用乙個空格隔開。輸出描述 output description 輸出共 1 行,...