數字dp回顧

2021-10-03 18:55:29 字數 2516 閱讀 5140

不會數字dp的同學點這裡 數字dp教學

#include

using

namespace std;

#define ll long long

#define lb long double

#define inf 0x3f3f3f3f

const

int maxn =

100035

;const

int mod =

1e6+7;

int len;

ll dp[15]

[2][

2][12

][10]

;// dp[i][j][k][l][m]表示當前搜到第i位,且前導0與最高位限制狀態為j和k, 且要統計的數字是l, 並且已經產生m個dig的答案

int a[15]

;// pos代表當前搜到第幾位,lead表示有無前導0, limit表示當前位是有限制, dig表示要統計是的數字, sum表示已經產生的dig的數量

ll dfs

(int pos,

int lead,

int limit,

int dig,

int sum)

//只有無限制無前導0的情況才更新dp陣列;

return

(!limit &&

!lead)

? dp[pos]

[lead]

[limit]

[dig]

[sum]

= res : res;

}ll cal

(ll x,

int y)

memset

(dp,-1

,sizeof

(dp));

return

dfs(1,

1,1, y,0)

;// 從高位向低位搜

}int

main()

return0;

}

[hdu2089]不要62

#include

using

namespace std;

#define ll long long

#define endl '\n'

const

int maxn =

100035

;const

int mod =

1e6+7;

ll l, r;

int len;

int a[16]

;ll dp[20]

[2][

2][10

];ll dfs

(int pos,

int lead,

int limit,

int last)

return

(!limit &&

!lead)

? dp[pos]

[lead]

[limit]

[last]

= res : res;

}ll cal

(ll x)

memset

(dp,-1

,sizeof

(dp));

return

dfs(1,

1,1,

0);}

intmain()

return0;

}

p2657 [scoi2009]windy數

#include

using

namespace std;

#define ll long long

#define endl '\n'

const

int maxn =

100035

;const

int mod =

1e6+7;

ll l, r;

int len;

int a[16]

;ll dp[20]

[2][

2][10

];ll dfs

(int pos,

int lead,

int limit,

int last)

return

(!limit &&

!lead)

? dp[pos]

[lead]

[limit]

[last]

= res : res;

}ll cal

(ll x)

memset

(dp,-1

,sizeof

(dp));

return

dfs(1,

1,1,

-10);

}int

main()

數字DP入門 數字DP模板

數字dp是一種計數用的dp,一般就是要統計乙個區間 le,ri 內滿足一些條件數的個數。所謂數字dp,字面意思就是在數字上進行dp咯。數字還算是比較好聽的名字,數字的含義 乙個數有個位 十位 百位 千位.數的每一位就是數字啦!之所以要引入數字的概念完全就是為了dp。數字dp的實質就是換一種暴力列舉的...

數字dp模版(dp)

1 include 2 include 3 include 4 include 5 6using namespace std 78 intt 9long long dp 19 19 2005 10 long long l,r 11int shu 20 12 13long long dfs int l...

數字DP 數字遊戲

科協裡最近很流行數字遊戲。某人命名了一種不降數,這種數字必須滿足從左到右個位數字呈現小於等於的關係,如123,446.現在大家決定玩乙個遊戲,指定乙個整數閉區間 a,b 問這個區間內有多少個不降數。輸入多組測試資料。每組只包含兩個數字a和b 1 a,b 2 31 每行給出乙個測試資料的答案,即 a,...