數字DP HDU3555 Bomb 題解

2021-08-09 01:47:27 字數 812 閱讀 6940

求 [1

,n] 中存在乙個子段是

49 的數的個數。

定義 f[i

][j]

[0/1

] 表示前

i 位第

i位為

j 是否出現

49的方案數。

然後直接做就行了……不過由於只需要管

49 所以並不需要存

j ,可以直接定義 f[

i][0

/1/2

]表示出現

49 /沒出現

49 末尾是

9 /沒出現

49末尾不是

9 ,更加簡單……

我程式有毒,讀者老爺請湊合著看……qaq

#include

#include

using

namespace

std;

typedef

long

long ll;

const

int maxn=20;

int te,a[maxn+5];ll n,sum[maxn+5],f[maxn+5][10][2];

void make()

}#define p(x) (a[0]-(x)+1)

inline ll dp(ll n)

for (int i=2;i<=a[0];i++) if (a[p(i-1)]==4&&a[p(i)]==9) return ans+1;

return ans;

}int main()

HDU 3555 Bomb 基礎數字dp

題意大致就是說給你乙個數n,要你求0 n之間含有49的數的個數 理解題意很簡單下面就直接貼 了 include include include includeusing namespace std int64 dp 21 4 int a 1000 void init int main int g 0...

hdu 3555 Bomb(數字dp初學)

題意 給定乙個n,求0到n範圍內不含49的數的個數 思路 這題是最基礎的數字dp,可模擬hdu2089 不要62,事實上,這題比不要62更簡單一些。首先,還是預處理打表,用乙個二維陣列來儲存狀態,dp i j 表示i位的滿足狀態j的數的個數,j有三種狀態,0 不含49的,1 不含49的,但是首位是9...

數字DP入門之hdu 3555 Bomb

hdu 3555 bomb 題意 在1 n 1 n 2 63 1 範圍內找出含有 49 的數的個數 與hdu 2089 不要62的區別 2089是找不不含 4 和 62 的區間範圍內的數,此題是含有 正好相反,對於 不要62 只是用第二位表示首位數字,這一題呢?看轉化 易知一定要要知道首位是9的個數...