hdu 1028 Ignatius and the Princess III
来源:互联网 发布:带网络电视 编辑:程序博客网 时间:2024/06/05 07:38
Ignatius and the Princess III
Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other)
Total Submission(s) : 32 Accepted Submission(s) : 28
Font: Times New Roman | Verdana | Georgia
Font Size: ← →
Problem Description
"The second problem is, given an positive integer N, we define an equation like this:
N=a[1]+a[2]+a[3]+...+a[m];
a[i]>0,1<=m<=N;
My question is how many different equations you can find for a given N.
For example, assume N is 4, we can find:
4 = 4;
4 = 3 + 1;
4 = 2 + 2;
4 = 2 + 1 + 1;
4 = 1 + 1 + 1 + 1;
so the result is 5 when N is 4. Note that "4 = 3 + 1" and "4 = 1 + 3" is the same in this problem. Now, you do it!"
Input
Output
Sample Input
41020
Sample Output
542627
和凑数字很像,问一个数分解不考虑顺序,有多少种分法可以用母函数做(母函数要慢一些),也可以用多重背包的思想去做,只不过这里的背包不是取最大了,而是加上之前的状态的种类数,注意要让dp[0]=1;
母函数
#include<iostream>
#include<cmath>#include<cstring>#include<algorithm>#include<queue>using namespace std;int main(){ int a1[1111]; int a2[1111]; int n; while(cin>>n) { int i,j,k; a1[0]=1; a2[0]=0; for(i=1;i<=n;i++) { a1[i]=1; a2[i]=0; } for(i=2;i<=n;i++) { for(j=0;j<=n;j++) for(k=0;k+j<=n;k+=i) { a2[k+j]+=a1[j]; } for(int s=0;s<=n;s++) { a1[s]=a2[s]; a2[s]=0; } } cout<<a1[n]<<endl; } return 0;}
背包
#include<iostream>#include<cmath>#include<cstring>#include<algorithm>#include<queue>using namespace std;int main(){ long long int dp[35555]; int n; while(cin>>n){ memset(dp,0,sizeof(dp)); dp[0]=1; int i,j; for(i=1;i<=n;i++) { for(j=i;j<=n;j++) dp[j]+=dp[j-i]; } cout<<dp[n]<<endl;} return 0;}
- hdu 1028 Ignatius and the Princess III
- HDU 1028 Ignatius and the Princess III
- hdu 1028 Ignatius and the Princess III
- HDU 1028 Ignatius and the Princess III
- HDU 1028 Ignatius and the Princess III
- hdu 1028 Ignatius and the Princess III
- HDU-1028-Ignatius and the Princess III
- HDU 1028 Ignatius and the Princess III
- HDU 1028 Ignatius and the Princess III
- hdu 1028 Ignatius and the Princess III
- hdu 1028 Ignatius and the Princess III
- hdu 1028 Ignatius and the Princess III
- hdu 1028 Ignatius and the Princess III
- hdu 1028 Ignatius and the Princess III
- hdu 1028 Ignatius and the Princess III
- HDU--1028 Ignatius and the Princess III
- HDU 1028 Ignatius and the Princess III
- Ignatius and the Princess III hdu 1028
- MediaPlayer
- 1.ARKit介绍
- 3.漏洞扫描
- uva3983(dp+单调队列)捡垃圾的机器人
- UVA-1589-象棋
- hdu 1028 Ignatius and the Princess III
- 12657
- Swift 保存pdf并在webview显示
- 剑指offer--判断链表是否带环?若带环求环的长度?若带环求环的入口点?
- ANSYSworkbench中绑定接触与一个整体的拉伸对比
- 关于C语言中“x++”和“++x”的问题
- hdu 1248 寒冰王座
- win 8+mysql5.7.18 winx64.zip (1067,1045,42S22错误)解决办法
- redius学习经验