ACM乐园
Love Me,Love My Code!
posts - 53,  comments - 24,  trackbacks - 0

http://acm.hdu.edu.cn/showproblem.php?pid=1028
整数分解,DP

#include <iostream>
#include 
<string>


using namespace std;

const int M=120;
int p[M+1][M+1]; //p[i][j]表示i能被分成不大于j的数之和的方法数

int main()
{
    
int n,i,j;
    
for(i=1;i<=M;i++)
        
for(j=1;j<=M;j++)
        
{
            
if(j>i)
                p[i][j]
=p[i][i];
            
else if(i==j)
                p[i][j]
=p[i][i-1]+1;
            
else
                p[i][j]
=p[i][j-1]+p[i-j][j];
        }

    
while(scanf("%d",&n)!=EOF)
    
{
        cout
<<p[n][n]<<endl;
    }

    
return 0;
}


posted on 2011-08-15 20:02 大大木马 阅读(487) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理



<2011年4月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

常用链接

留言簿(1)

随笔档案(53)

文章档案(2)

搜索

  •  

积分与排名

  • 积分 - 63780
  • 排名 - 351

最新评论

阅读排行榜

评论排行榜