首页 > 其他 > 详细

cogs 1164. 跑步

时间:2017-09-06 15:32:30      阅读:300      评论:0      收藏:0      [点我收藏+]

1164. 跑步

★   输入文件:runa.in   输出文件:runa.out   简单对比
时间限制:1 s   内存限制:128 MB

【题目描述】

路人甲准备跑N (5≤N≤500)圈来锻炼自己的身体,他准备分多次跑完,每次都跑正整数圈,然后休息下再继续跑。为了有效地提高自己的体能,他决定每次跑的圈数都必须比上次跑的多。可以假设他刚开始跑了0圈,那么请问他可以有多少种跑完这N圈的方案?

【输入格式】

 一个整数N

【输出格式】

跑完这N圈的方案数

【样例输入】

212

【样例输出】

995645335

思路:f[i][j]表示跑了i圈时,最后一次跑了几圈。

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int n;
long long ans,f[501][501];
int main(){
    //freopen("runa.in","r",stdin);
    //freopen("runa.out","w",stdout);
    scanf("%d",&n);
    for(int i=0;i<n+1;i++)    f[i][i]=1;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=i;j++)
            for(int k=1;k<min(j,i-j+1);k++)
                f[i][j]+=f[i-j][k];
    for(int i=1;i<n;i++)
        ans+=f[n][i];
    cout<<ans;
}

 

cogs 1164. 跑步

原文:http://www.cnblogs.com/cangT-Tlan/p/7484717.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!