博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 2709 Sumsets(DP递推)
阅读量:4139 次
发布时间:2019-05-25

本文共 1623 字,大约阅读时间需要 5 分钟。

Sumsets

Time Limit: 6000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1917 Accepted Submission(s): 753
Problem Description
Farmer John commanded his cows to search for different sets of numbers that sum to a given number. The cows use only numbers that are an integer power of 2. Here are the possible sets of numbers that sum to 7:
1) 1+1+1+1+1+1+1
2) 1+1+1+1+1+2
3) 1+1+1+2+2
4) 1+1+1+4
5) 1+2+2+2
6) 1+2+4
Help FJ count all possible representations for a given integer N (1 <= N <= 1,000,000).
Input
A single line with a single integer, N.
Output
The number of ways to represent N as the indicated sum. Due to the potential huge size of this number, print only last 9 digits (in base 10 representation).
Sample Input
7
Sample Output
6
Source
/*题目大意:输入一个整数,将这个数分解成不定个正数只和,要求这些数必须是2的k次方(k为大于等于0的正数).输出分的方法种数.(由于当输出整数过大时,种数很大只输出最后9位) 思路一: 设a[n]为和为 n 的种类数;根据题目可知,加数为2的N次方,即 n 为奇数时等于它前一个数 n-1 的种类数 a[n-1] ,若 n 为偶数时分加数中有无 1 讨论,即关键是对 n 为偶数时进行讨论:1.n为奇数,a[n]=a[n-1]2.n为偶数:(1)如果加数里含1,则一定至少有两个1,即对n-2的每一个加数式后面 +1+1,总类数为a[n-2];(2)如果加数里没有1,即对n/2的每一个加数式乘以2,总类数为a[n/2];所以总的种类数为:a[n]=a[n-2]+a[n/2];画前8个可以很简单求出  n为奇数     a[n]=a[n-1]  n为偶数    因为奇数是直接求前面那个,所以偶数时应该求的是n-2 加数是2的次方,   偶数时  在n-2时每条式子+1+1 与dp[n-2]一样           然后我的理解是 画所有式子找规律 发现剩下的没+1的式子为		   n/2时的式子数       */ #include 
__int64 a[1000001];int main(){ __int64 n; int i; a[1]=1;a[2]=2; for(i=3;i<1000001;i++) { if(i%2==0) a[i]=a[i-2]+a[i/2]; else a[i]=a[i-1]; a[i]%=1000000000; //控制最多为9位. } while(scanf("%I64d",&n)!=EOF) printf("%I64d\n",a[n]); return 0;}

转载地址:http://hymvi.baihongyu.com/

你可能感兴趣的文章
python+opencv之视频人脸识别
查看>>
人脸识别(OpenCV+Python)
查看>>
6个强大的AngularJS扩展应用
查看>>
网站用户登录系统设计——jsGen实现版
查看>>
第三方SDK:讯飞语音听写
查看>>
第三方SDK:JPush SDK Eclipse
查看>>
第三方开源库:imageLoader的使用
查看>>
自定义控件:飞入飞出的效果
查看>>
自定义控件:动态获取控件的高
查看>>
第三方开源库:nineoldandroid:ValueAnimator 动态设置textview的高
查看>>
第三方SDK:百度地图SDK的使用
查看>>
Android studio_迁移Eclipse项目到Android studio
查看>>
JavaScript setTimeout() clearTimeout() 方法
查看>>
CSS border 属性及用border画各种图形
查看>>
转载知乎-前端汇总资源
查看>>
JavaScript substr() 方法
查看>>
JavaScript slice() 方法
查看>>
JavaScript substring() 方法
查看>>
HTML 5 新的表单元素 datalist keygen output
查看>>
(转载)正确理解cookie和session机制原理
查看>>