1. 程式人生 > >藍橋杯ALGO-3 K好數(dp)

藍橋杯ALGO-3 K好數(dp)

問題描述

如果一個自然數N的K進製表示中任意的相鄰的兩位都不是相鄰的數字,那麼我們就說這個數是K好數。求L位K進位制數中K好數的數目。例如K = 4,L = 2的時候,所有K好數為11、13、20、22、30、31、33 共7個。由於這個數目很大,請你輸出它對1000000007取模後的值。

輸入格式

輸入包含兩個正整數,K和L。

輸出格式 輸出一個整數,表示答案對1000000007取模後的值。 樣例輸入 4 2 樣例輸出 7 資料規模與約定

對於30%的資料,KL <= 106

對於50%的資料,K <= 16, L <= 10;

對於100%的資料,1 <= K,L <= 100。

#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
#define mod 1000000007
__int64 dp[105][105];
int main()
{
    int k,l,i,j,x;
    scanf("%d%d",&k,&l);
    for(i = 0; i<k; i++)
        dp[1][i] = 1;
    for(i = 2; i<=l; i++)
        for(j = 0; j<k; j++)
            for(x = 0; x<k; x++)
                if(x!=j-1&&x!=j+1)
                {
                    dp[i][j]+=dp[i-1][x];
                    dp[i][j]%=mod;
                }
    __int64 sum = 0;
    for(i = 1; i<k; i++)
    {
        sum+=dp[l][i];
        sum%=mod;
    }
    printf("%I64d\n",sum%mod);
    return 0;
}

相關推薦

藍橋ALGO-3 Kdp

問題描述 如果一個自然數N的K進製表示中任意的相鄰的兩位都不是相鄰的數字,那麼我們就說這個數是K好數。求L位K進位制數中K好數的數目。例如K = 4,L = 2的時候,所有K好數為11、13、20、

藍橋 ALGO-3 K數位DP

解題方案:dp,在分析問題的時候可以發現每次都要計算的重複子問題:i位數以數字j為首的有多少個。 #include <iostream> #include <cstdio>

ALGO-3 K動態規劃

con 正整數 const 方程 自然 自然數 include 由於 can 問題描述 如果一個自然數N的K進制表示中任意的相鄰的兩位都不是相鄰的數字,那麽我們就說這個數是K好數。求L位K進制數中K好數的數目。例如K = 4,L = 2的時候,所有K好數為11、13、20

KDP

cpp script java 數據 我們 sin 數字 class 一個 問題描寫敘述 假設一個自然數N的K進制表示中隨意的相鄰的兩位都不是相鄰的數字,那麽我們就說這個數是K好數。求L位K進制數中K好數的數目。比如K = 4,L = 2的時候。全部K

藍橋-Kjava

藍橋杯練習題—K好數 問題描述 如果一個自然數N的K進製表示中任意的相鄰的兩位都不是相鄰的數字,那麼我們就說這個數是K好數。求L位K進位制數中K好數的數目。例如K = 4,L = 2的時候,所有

藍橋 K dp)------------C語言

/*問題描述 如果一個自然數N的K進製表示中任意的相鄰的兩位都不是相鄰的數字,那麼我們就說這個數是K好數。 求L位K進位制數中K好數的數目。例如K = 4,L = 2的時候,所有K好數為11、13、

藍橋演算法訓練-k

問題描述 如果一個自然數N的K進製表示中任意的相鄰的兩位都不是相鄰的數字,那麼我們就說這個數是K好數。求L位K進位制數中K好數的數目。例如K = 4,L = 2的時候,所有K好數為11、13、20、22、30、31、33 共7個。由於這個數目很大,請你輸出它對1000000

藍橋 演算法訓練 K JAVA

import java.util.Scanner; class Main{ static int MOD=1000000007 ; public static void main(String[] args) { Scanner sc = new Scanne

藍橋演算法訓練 k

如果一個自然數N的K進製表示中任意的相鄰的兩位都不是相鄰的數字,那麼我們就說這個數是K好數。求L位K進位制數中K好數的數目。例如K = 4,L = 2的時候,所有K好數為11、13、20、22、30、31、33 共7個。由於這個數目很大,請你輸出它對1000000007取模後的值。

動態規劃之K藍橋ALGO-3

import java.util.Scanner; public class Demo01 { private int[][] matrix(int k, int l){ int[][] m

藍橋 ALGO-3 演算法訓練 K 動態規劃 DP

如果一個自然數N的K進製表示中任意的相鄰的兩位都不是相鄰的數字,那麼我們就說這個數是K好數。求L位K進位制數中K好數的數目。例如K = 4,L = 2的時候,所有K好數為11、13、20、22、30、31、33 共7個。由於這個數目很大,請你輸出它對1000000007取模後的值。

ALO-3 K

問題描述 如果一個自然數N的K進製表示中任意的相鄰的兩位都不是相鄰的數字,那麼我們就說這個數是K好數。求L位K進位制數中K好數的數目。例如K = 4,L = 2的時候,所有K好數為11、13、20、22、30、31、33 共7個。由於這個數目很大,請你輸出它對1000000007取模後的值。

藍橋歷屆試題——取球遊戲博弈論

取球遊戲 今盒子裡有n個小球,A、B兩人輪流從盒中取球,每個人都可以看到另一個人取了多少個,也可以看到盒中還剩下多少個,並且兩人都很聰明,不會做出錯誤的判斷。     我們約定:       每個人從

藍橋:蒜頭君的隨機數java

package lanqiaobei; import java.util.*; /* 練習題:蒜頭君的隨機數 蒜頭君想在學校中請一些同學一起做一項問卷調查,為了確保實驗的客觀性,他先用計算機生成了 n(1≤n≤100)個 1 到 1000 之間的隨機整數,對於其中重複的數字,只保留一個,把其餘相

藍橋:進位制轉換java

package lanqiaobei; import java.util.HashMap; import java.util.Scanner; import java.util.Stack; /* 練習題:進位制轉換 輸入一個十進位制數 N,將它轉換成 R 進位制數輸出。在 10≤R≤16的情況

2015年藍橋A組 牌型種數 dfs

小明被劫持到X賭城,被迫與其他3人玩牌。 一副撲克牌(去掉大小王牌,共52張),均勻發給4個人,每個人13張。 這時,小明腦子裡突然冒出一個問題: 如果不考慮花色,只考慮點數,也不考慮自己得到的牌的先後順序,自己手裡能拿到的初始牌型組合一共有多少種呢? 請填寫該整數,不要填寫

2015第六屆藍橋全國軟體大賽省賽預賽總結

這是我上大學以來第一次自發的寫總結,這也許意味著我對大學的看法和接下來的大學生活都將有所改變吧。首先說說引導我寫這篇總結的“人物”吧,RUI,從大一開始便是同學,直到大三成為了舍友。他的成績一直很好,如果沒記錯的話,大一專業第一名,大二好像也是第一第二的,總之在班裡一直名列

藍橋 演算法提高VIP 素數求和java

2注意判斷素數時:n的因數除了根號n,其他都是成對存在的,且必定一個大於根號n一個小於根號n,如果n不是質數,那麼它的因數一定有一個大於根號n一個小於根號n,所以判斷一個數是不是質數的時候只需要判斷從2到根號n即可。i<=根號n即i*i<=n。1*30=30,2*15=30,3*10=30,5*6

藍橋真題 ——地宮取寶java

 標題:地宮取寶     X 國王有一個地宮寶庫。是 n x m 個格子的矩陣。每個格子放一件寶貝。每個寶貝貼著價值標籤。     地宮的入口在左上角,出口在右下角。    

藍橋大賽訓練記錄——入門訓練

BEGIN-1 A+B問題 import java.util.Scanner; public class Main { public static void main(String ar