數字DP Hdu 2089 不要62

2021-08-05 21:48:41 字數 742 閱讀 7898

ps:博主又水blog,是佳龍大神叫我幹的。

乙個數被稱為吉利(手動滑稽)當且僅當其不含4和62。

多次詢問乙個區間的吉利的個數。

這題應該算是數字dp的裸題吧。

考慮求出乙個固定長度出現的吉利數,然後分別考慮每一位就可以了。設f

[i][

0/1/

2]表示長度為

i 的吉利個數,首位為2的吉利個數,不吉利的個數。

轉移方程就不難求出:

f[i][0]=9*f[i-1][0]-f[i-1][1];//除了4當前位有9種選擇,但要排除62的情況

f[i][1]=f[i-1][0];//只有首位為2的選擇

f[i][2]=f[i-1][0]+f[i-1][1]+f[i-1][2]*10;//可以有4和62的選擇,如果已經不是吉利數則可以放任意數

接下來按位討論一下就可以了。

#include

using namespace std;

int f[10][3],n,m;

void work()

}int check(int

x) a[tot+1]=0;

for (int i=tot;i>=1;i--)

if (a[i]==4||(a[i+1]==6&&a[i]==2)) pd=1;

}return ans;

}int main()

}

數字DP HDU2089 不要62

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

數字DP HDU 2089 不要62

簡單的數字dp 數字dp的簡單思想 從低位到高位開始列舉 每次狀態有兩種 即 到當前位與上限n一模一樣 和 到當前位已經小於n 那麼就可以列舉當前位進行轉移 因為 到當前位與上限n一模一樣 只有一種狀況 所以不特意儲存 中dp陣列都表示 到當前位已經小於n dp 2 表示 已經出現62 dp 1 表...

數字DP HDU 2089 不要62

include include include include include include include include include include include include define inf 0x3f3f3f3f using namespace std typedef long...