zoukankan      html  css  js  c++  java
  • SDUT——Kbased Numbers

    原题:

    题目描述

    Let’s consider K-based numbers, containing exactly N digits. We define a number to be valid if its K-based notation doesn’t contain two successive zeros. For example:
    (1)1010230 is a valid 7-digit number;
    (2)1000198 is not a valid number;
    (3)0001235 is not a 7-digit number, it is a 4-digit number.
    Given two numbers N and K, you are to calculate an amount of valid K based numbers, containing N digits.
    You may assume that 2 ≤ K ≤ 10; N ≥ 2; N + K ≤ 18.

    输入

    The numbers N and K in decimal notation separated by the line break.

    输出

    The result in decimal notation.

    示例输入

    2 10

    示例输出

    90

    分析:

    递推,哎呀,如果我自己递推,肯定哇。

    原码;

    #include <iostream>
    using namespace std;
    const int maxn=20;
    long long f[maxn],n,k;
    int main()
    {
    
        while(cin>>n>>k)
        {
            if(n==1)
            {
                cout<<k<<endl;
                return 0;
            }
            f[1]=k-1;
            f[2]=k*(k-1);
            for( int i=3; i<=n; i++)
            {
                f[i]=(f[i-1]+f[i-2])*(k-1);
            }
            cout<<f[n]<<endl;
        }
        return 0;
    }
    
    


     

  • 相关阅读:
    线性dp 打鼹鼠
    区间dp 能量项链 洛谷p1063
    洛谷 CF1012C Hills (动态规划)
    交作业了 动态规划 木棍加工
    最短路之Floyd
    最小生成树
    寒假集训并查集初级版
    【倍增DP】——保卫王国
    bootstrap四部分概述
    zrender初识
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/2999683.html
Copyright © 2011-2022 走看看