數字DP HDU 2089 不要62

2021-10-01 22:22:41 字數 1830 閱讀 4452

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define inf 0x3f3f3f3f

using

namespace std;

typedef

long

long ll;

typedef

unsigned

long

long ull;

const ll maxn =20+

5;int n, m;

int dp[maxn][2

];int a[maxn]

;int

dfs(

int pos,

int pre,

int sta,

bool limit)if(

!limit)

dp[pos]

[sta]

= ans;

return ans;

}int

solve

(int x)

return

dfs(pos -1,

-1,0

,true);

}int

main()

return0;

}

數字dp參考部落格,寫的挺詳細的哈哈哈,orz

今天重新做了一遍,發現之前的**pre和sta其實是重複了,沒必要兩個引數,完全可以用sta用來記錄當前pos的前乙個數字是不是6,如果是並且當前位為2那就不合法.qaq

下面是新的**:

另外附上學長給整理的模板(除了solve裡面pos應該初始化為1【他的pos是從1開始的,而我是從0開始的,其實是無所謂啦】,其他都是對的)ps: 就是看了他的模板才想到其實可以sta記錄上一位的狀態的www我太菜了

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define inf 0x3f3f3f3f

using

namespace std;

typedef

long

long ll;

typedef

unsigned

long

long ull;

const

int maxn =

1e4+5;

int n, m;

int a[35]

;int dp[35]

[2];

intdfs

(int pos,

int sta,

bool limit)

//sta:上一位是不是6if(

!limit)

dp[pos]

[sta]

= ans;

return ans;

}int

solve

(int x)

return

dfs(pos -1,

0,1)

;}intmain()

return0;

}

數字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

ps 博主又水blog,是佳龍大神叫我幹的。乙個數被稱為吉利 手動滑稽 當且僅當其不含4和62。多次詢問乙個區間的吉利的個數。這題應該算是數字dp的裸題吧。考慮求出乙個固定長度出現的吉利數,然後分別考慮每一位就可以了。設f i 0 1 2 表示長度為 i 的吉利個數,首位為2的吉利個數,不吉利的個數...