51NOD1009數字1的數量 數字DP

2021-08-28 04:28:19 字數 636 閱讀 8845

51nod1009數字1的數量

題意就是求1-n之內出現過多少個1,比如11出現兩次,112出現兩次。

直接分為兩種數字dp,

當當前位為1時,後面進行無限制數字dp求方案數,

當前位不為1時,直接數字dp下一位,

這樣就算出了每一位為1對前一位的貢獻。前一位不斷加上後面可能的貢獻數就好了。

**

#include#include#include#includeusing namespace std;

typedef long long ll;

int a[20];

ll dp[20];

ll dp2[20];

ll dfs2(int pos,bool limit)

if(!limit) dp2[pos]=tmp;

return tmp;

}ll dfs(int pos,bool limit)

if(!limit) dp[pos]=tmp;

return tmp;

}ll solve(int x)

return dfs(pos-1,true);

}int main()

51nod 1009 數字1的數量

1009 數字1的數量 基準時間限制 1 秒 空間限制 131072 kb 分值 5 難度 1級演算法題 收藏 關注 給定乙個十進位制正整數n,寫下從1開始,到n的所有正數,計算出其中出現所有1的個數。例如 n 12,包含了5個1。1,10,12共包含3個1,11包含2個1,總共5個1。input ...

51 nod 1009 數字1的數量

1009 數字1的數量 基準時間限制 1 秒 空間限制 131072 kb 分值 5 難度 1級演算法題 收藏 關注 給定乙個十進位制正整數n,寫下從1開始,到n的所有正數,計算出其中出現所有1的個數。例如 n 12,包含了5個1。1,10,12共包含3個1,11包含2個1,總共5個1。input ...

51nod 1009 數字1的數量

1009 數字1的數量 基準時間限制 1 秒 空間限制 131072 kb 分值 5 難度 1級演算法題 給定乙個十進位制正整數n,寫下從1開始,到n的所有正數,計算出其中出現所有1的個數。例如 n 12,包含了5個1。1,10,12共包含3個1,11包含2個1,總共5個1。input 輸入n 1 ...