數字DP入門 hdu2089(不要62)

2021-08-21 13:35:38 字數 1163 閱讀 8669

先貼個模板:

typedef

long

long ll;

int a[20];

ll dp[20][state];//不同題目狀態不同

ll dfs(int pos,/*state變數*/,bool lead/*前導零*/,bool limit/*數字上界變數*/)//不是每個題都要判斷前導零

//計算完,記錄狀態

if(!limit && !lead) dp[pos][state]=ans;

/*這裡對應上面的記憶化,在一定條件下時記錄,保證一致性,當然如果約束條件不需要考慮lead,這裡就是lead就完全不用考慮了*/

return ans;

}ll solve(ll x)

return dfs(pos-1

/*從最高位開始列舉*/,/*一系列狀態 */,true,true);//剛開始最高位都是有限制並且有前導零的,顯然比最高位還要高的一位視為0嘛

}int main()

}

ac**:

#include 

using

namespace

std;

typedef

long

long ll;

const

int maxn = 1e6 + 4;

const

int mod = 1e9 + 7;

const

int inf = 0x3f3f3f3f;

int n, m, cnt;

int dp[100][10];//dp[i][j]表示第i位且前一位是不是6的情況的解

int a[100];

int dfs(int pos, int pre, int sta, int limit)

if(!limit) dp[pos][sta] = ans;

return ans;

}int solve(int x)

// printf("[%d]",dfs(cnt - 1, -1, 0, true));

return dfs(cnt - 1, -1, 0, true);

}int main()

return

0;}

HDU 2089 不要62(數字DP入門)

執著追求並從中得到最大快樂的人,才是成功者。梭羅 第一次做這個題是暴力過的,感覺也沒啥,今天集訓講數字dp,想用數字dp做一下。自己還真是菜的扣腳啊 寫一下題解如果有錯誤希望指正!不勝感激。原題鏈結 f i j i代表有幾位數,j代表起始數字 例如f 3 1 代表的是 100 199 即使是2 63...

hdu 2089 不要62 (數字dp入門)

題目鏈結 杭州人稱那些傻乎乎粘嗒嗒的人為62 音 laoer 杭州交通管理局經常會擴充一些的士車牌照,新近出來乙個好訊息,以後上牌照,不再含有不吉利的數字了,這樣一來,就可以消除個別的士司機和乘客的心理障礙,更安全地服務大眾。不吉利的數字為所有含有4或62的號碼。例如 62315 73418 889...

hdu 2089 不要62 數字dp入門

杭州人稱那些傻乎乎粘嗒嗒的人為62 音 laoer 杭州交通管理局經常會擴充一些的士車牌照,新近出來乙個好訊息,以後上牌照,不再含有不吉利的數字了,這樣一來,就可以消除個別的士司機和乘客的心理障礙,更安全地服務大眾。不吉利的數字為所有含有4或62的號碼。例如 62315 73418 88914 都屬...