#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的吉利個數,不吉利的個數...