POJ 2229 Sumsets 动态规划 详解
来源:互联网 发布:业务流程图的软件 编辑:程序博客网 时间:2024/05/17 23:56
题目链接: POJ—2229 Sumsets
题目大意: 把一个数拆成2的幂的和的形式,求方案总数。比如2,有1+1,还可以2,两种。
题目分析: 其实一开始没发现数学规律,于是打了表(如下图)不难发现,其中的奇数都和前一个偶数一样,而偶数dp[i] = dp[i-1] + dp[i/2];
解释如下:
10 中1开头的恰好都是9中的数列,不是1开头的最后那几行因为都是偶数,除以二以后恰好都是5中的数列。所以dp[10] = dp[9] + dp[5];
以此类推:dp[i] = dp[i-1] + dp[i>>1];
/************************************Problem: 2229 User: ChenyangDuMemory: 8536K Time: 110MSLanguage: G++ Result: Accepted*************************************/#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int n;long long dp[1000000+20];int main(){ cin>>n; dp[1] = 1;dp[2] = 2; for(int i=3;i<=n;i++){ if((i & 1) == 1) dp[i] = dp[i-1]; else dp[i] = dp[i-1] + dp[i>>1]; dp[i] %= 1000000000; } cout<<dp[n]<<endl; return 0;}
阅读全文
0 0
- POJ 2229 Sumsets 动态规划 详解
- poj 2229 Sumsets 【动态规划】
- POJ - 2229 Sumsets (动态规划)
- POJ2229 Sumsets 动态规划
- 基础动态规划-(1)(1)Sumsets POJ
- poj2229--Sumsets(动态规划)
- POJ 2229 Sumsets
- poj 2229 Sumsets
- [POJ] 2229 Sumsets
- sumsets poj 2229
- POJ-2229-Sumsets
- poj 2229 Sumsets
- poj 2229 Sumsets DP
- POJ 2229 Sumsets DP
- poj 2229 Sumsets
- poj-2229-Sumsets
- Sumsets poj 2229 c++
- POJ-2229 Sumsets DP
- python 内置的os模块将文件夹下所有图片名称加上指定字符
- Java实现URI参数签名算法,确保应用与REST服务器之间的安全通信,防止Secret Key盗用、数据篡改等恶意攻击行为
- Ubuntu安装网易云音乐
- 变量-类型推断
- Caffe下自个儿的数据训练和测试
- POJ 2229 Sumsets 动态规划 详解
- 翻转单词顺序
- 机器人技术(8)AtdRobot摄像头开发教程
- 机器学习实战 支持向量机
- Ubuntu 14.04中docker入门之Tomcat
- git从码云上下载、更新、提交代码
- 简单的EF Code First
- 计算机角度的加减法
- jQuery——选择器,操作DOM