poj Round Numbers 3252(数位dp进阶)
2015-04-03 14:36
323 查看
题意:
统计区间内0的位数大于等于1的位数的二进制数。
ex:[1, 4]中有2(10), 4(100)
思路:
数位dp,f[pos][前面0的个数][前面1的个数]f[pos][前面0的个数][前面1的个数]是要记忆化的状态
统计区间内0的位数大于等于1的位数的二进制数。
ex:[1, 4]中有2(10), 4(100)
思路:
数位dp,f[pos][前面0的个数][前面1的个数]f[pos][前面0的个数][前面1的个数]是要记忆化的状态
int d[35], f[35][35][35]; // limit:是否达到上界 // nolead: 没有前导0 int dp (int pos, int limit, int nolead, int num0, int num1) { if (pos < 0) return (nolead && num0 >= num1); if (limit || f[pos][num0][num1] == -1) { int last = limit ? d[pos] : 1, ret = 0; for (int i=0;i<=last;++i) { int nolead2 = nolead || i; if (nolead2) ret += dp (pos-1, limit && i == last, nolead2, num0+1-i, num1+i); else ret += dp (pos-1, limit && i == last, nolead2, 0, 0); } if (limit) return ret; f[pos][num0][num1] = ret; } return f[pos][num0][num1]; }
相关文章推荐
- POJ 3252 Round Numbers <数位dp(记忆化所搜)/组合数学>
- Round Numbers POJ - 3252 (数位DP)题解
- 【数位DP】Round Numbers POJ - 3252
- poj 3252 数位dp(Round Number)
- POJ Round Numbers(数位DP)
- POJ 3252 Round Numbers 数位dp
- poj3252(记忆优化,数位dp)
- POJ 3252 Round Numbers 数位dp(入门
- POJ 3252 数位dp
- poj 3252 数位DP
- poj 3252 Round Numbers(数位dp)
- poj 3252 Round Numbers(数位dp)
- poj 3252 Round Numbers (数位DP)
- POJ 3252:Round Numbers
- POJ 3252 数位DP
- poj 3252 Round Numbers 数位dp
- 【数位DP】【poj 3252】Round Numbers
- POJ 3252 Round Numbers (数位DP)
- poj 3252 Round Numbers(数位DP,4级)
- Codeforces Round #235 (Div. 2) / 410D Roman and Numbers (带有整除性质的数位DP)