URAL1009——DP——K-based Numbers

來源:互聯網
上載者:User

標籤:

Description

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:
  • 1010230 is a valid 7-digit number;
  • 1000198 is not a valid number;
  • 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.

Input

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

Output

The result in decimal notation.

Sample Input

input output
210
90
 大意:和flag那道一樣,如果前面是1的話,目前狀態是由dp[n-1]轉移過來,若果前面是0的話說明前面的前面是1當前的狀態是由dp[n-2]轉移過來的(0是肯定要的),對於每一種情況都有(k-1)種方法,一開始考慮0的狀態想錯了。。WA了幾發
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int main(){    long long dp[200];    int n,k;    while(~scanf("%d%d",&n,&k)){        dp[1] = k - 1;        dp[2] = k*(k-1);        for(int i = 3; i <= n ; i ++)            dp[i] = (k-1)*(dp[i-1] + dp[i-2]);        printf("%lld\n",dp[n]);    }    return 0;}

  

URAL1009——DP——K-based Numbers

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.