LightOJ 1032 - Fast Bit Calculations(dp)
2015-11-10 12:59
399 查看
题目链接:LightOJ 1032 - Fast Bit Calculations
代码
#include <cstdio> #include <cstring> #include <algorithm> using namespace std; typedef long long ll; const int maxn = 50; ll dp[maxn + 5][maxn + 5][2]; int main () { int cas; scanf("%d", &cas); for (int kcas = 1; kcas <= cas; kcas++) { int n, bit[maxn + 5]; scanf("%d", &n); for (int i = maxn; i >= 0; i--) { bit[i] = (n&1); n >>= 1; } int p = 0; memset(dp, 0, sizeof(dp)); for (int i = 1; i <= maxn; i++) { for (int k = 0; k < maxn; k++) { for (int x = 0; x < 2; x++) for (int y = 0; y < 2; y++) { int v = k + (x&y); dp[i][v][y] += dp[i-1][k][x]; } } for (int j = 0; j < bit[i]; j++) dp[i][p][j]++; if (bit[i-1] && bit[i]) p++; } ll ret = p; for (int i = 0; i < maxn; i++) ret += (dp[maxn][i][0] + dp[maxn][i][1]) * i; printf("Case %d: %lld\n", kcas, ret); } return 0; }
相关文章推荐
- 深入浅出LSTM神经网络 ------从卷积 递归网络 到长短时间记忆模型
- C++基础::自制异常定位器
- 自定义控件--自定义内容可以滚动的TextView
- 面向对象设计原则之接口隔离原则
- LightOJ 1031 - Easy Game(概率)
- 把钱投资自己头脑上(三)
- 用MVP架构开发Android应用
- 黑马程序员_自定义异常
- LightOJ 1030 - Discovering Gold(dp)
- ZigBee相关资源
- 老程序员应该记住的 5 件事
- 面向对象设计原则之开闭原则
- 黑马程序员_继承
- PHP编码规范
- 深圳地铁规划图2
- 大数据大家学
- 干掉Unity3D
- 【HDU】2966 In case of failure【KD树】
- [leetcode-303]Range Sum Query - Immutable
- 操作系统与网络实现 之九