zoukankan      html  css  js  c++  java
  • TYVJ P1015 公路乘车 &&洛谷 P1192 台阶问题 Label:dp

    题目描述

    有N级的台阶,你一开始在底部,每次可以向上迈最多K级台阶(最少1级),问到达第N级台阶有多少种不同方式。

    输入输出格式

    输入格式:

    输入文件的仅包含两个正整数N,K。

    输出格式:

    输入文件stair.out仅包括1个正整数,为不同方式数,由于答案可能很大,你需要输出mod 100003后的结果。

    输入输出样例

    输入样例#1:
    5 2
    输出样例#1:
    8

    说明

    对于20%的数据,有N ≤ 10, K ≤ 3;

    对于40%的数据,有N ≤ 1000;

    对于100%的数据,有N ≤ 100000,K ≤ 100。

    代码

    #include<iostream>
    #include<cstring>
    #include<cstdio>
    #include<algorithm>
    using namespace std;
    int n,k;
    int f[10000005];
    int main(){
        scanf("%d%d",&n,&k);
        f[0]=1;
        
        for(int j=1;j<=n;j++){
            for(int i=1;i<=k;i++){
                f[j]=(f[j]+f[j-i])%100003;
            }//这里少了一句话,j应该大于或等于i
        }
        printf("%d
    ",f[n]);
        return 0;
    }
     1 #include<iostream>
     2 #include<cstring>
     3 #include<cstdio>
     4 #include<algorithm>
     5 using namespace std;
     6 int n,k,f[10000005];
     7 int main(){
     8     scanf("%d%d",&n,&k);
     9     f[0]=1;
    10     for(int i=1;i<=k;i++){
    11         for(int j=i;j<=n;j++){
    12             f[j]=(f[j]+f[j-i])%100003;
    13         }
    14         for(int ll=1;ll<=n;ll++){
    15             printf("%d ",f[ll]);
    16         }puts("");
    17     }
    18     printf("%d
    ",f[n]);
    19     return 0;
    20 }
    不满足后效性的错误代码

    看题解说是斐波那契数列变形,dp也可以啊

    感觉和TYVJ 1015是差不多的

    #include<cmath>
    #include<cstdio>
    #include<vector>
    #include<cstring>
    #include<algorithm>
    #define inf 1000000000
    using namespace std;
    int n;
    int m[15],f[105];
    int main()
    {
        memset(f,127,sizeof(f));
        f[0]=0;
        for(int i=1;i<=10;i++)
            scanf("%d",&m[i]);
        scanf("%d",&n);
        for(int i=1;i<=10;i++)
            for(int j=0;j<=n;j++)
                if(f[j]<inf)
                    f[j+i]=min(f[j+i],f[j]+m[i]);
        printf("%d
    ",f[n]);
        return 0;
    }
    FiiFi表示移动i公里的最小代价
    Fi=min{fij+mj}
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!
  • 相关阅读:
    Cocos2d-JS中的Sprite精灵类
    Cocos2d-JS中的精灵菜单和图片菜单
    Cocos2d-JS中的文本菜单
    SpringMVC01
    xml文件
    MyEclipse保存文件时 自动格式化代码! 不包括文档注释
    MyEclipse修改servlet模版
    java05 选择结构
    ssh注解开发
    使用socket实现聊天功能
  • 原文地址:https://www.cnblogs.com/radiumlrb/p/5819338.html
Copyright © 2011-2022 走看看