zoukankan      html  css  js  c++  java
  • 2018牛客多校第二场a题

    一个人可以走一步或者跳x步,但不能连着跳,问到这个区间里有几种走法

    考虑两种状态  对于这一点,我可以走过来,前面是怎么样的我不用管,也可以跳过来但是,跳过来必须保证前一步是走的

    dp[i][0]表示i这一步是走过来的dp[i][1]表示i这一步是跳过来的

    #include<iostream>
    #include<bits/stdc++.h>
    using namespace std;
    long long dp[100002][2];
    long long mod=1e9+7;
    long long ans[100002];
    int main()
    {
        int n,w;
        cin>>n>>w;
        dp[0][0]=1;
        for(int i=1;i<=100002;i++)
        {
            dp[i][0]=(dp[i-1][0]+dp[i-1][1])%mod;
            if(i>=w) dp[i][1]=dp[i-w][0]%mod;
        }
         
        for(int i=1;i<=100002;i++)
        {
            ans[i]=(dp[i][0]+dp[i][1]+ans[i-1])%mod;
        }
        //for(int i=1;i<=10;i++)
        //cout<<ans[i]<<endl;
         
        while(n--)
        {
            long long l,r;
            cin>>l>>r;
            cout<<(ans[r]-ans[l-1]+mod)%mod<<endl;
        }
        return 0;
    }
  • 相关阅读:
    SpringMVC概述
    Spring 声明式事务
    Spring_AOP切面编程
    Spring DI依赖注入
    Spring IOC控制反转
    Spring解耦和耦合
    Spring概述
    HTTP协议常见状态码
    TCP/IP协议的认识
    设计模式-工厂模式(factory)
  • 原文地址:https://www.cnblogs.com/wpbing/p/9508645.html
Copyright © 2011-2022 走看看