題意:
給你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 行,...