zoukankan      html  css  js  c++  java
  • SDUT2062 Kbased Numbers(递推)

    分析:

    这题很水,只是做的时候对边界没有分析正确,WA了很多次。发上来,警示自己要细心。

    方法1:

    设f(n)为第n为可以为0的排法:

    View Code
    #include <stdio.h>  
    #include <stdlib.h>  
    #include <string.h>  
      
    int dp[100], k;  
      
    int f(int n){  
        if(n == 1) return k;  
        if(n == 2) return (k-1)*(k+1);  
        else if(dp[n]) return dp[n];  
        else return (dp[n] = (k-1)*(f(n-1)+f(n-2)));  
    }  
      
    int main(){  
        int n;  
      
        while(scanf("%d %d", &n, &k) == 2){  
            memset(dp, 0, sizeof(dp));  
            dp[n] = (k-1)*f(n-1);  
            printf("%d\n", dp[n]);  
        }  
      
        return 0;  
    }  

    方法2:

    设f(n)为第n为不为0的排法.

    View Code
    #include <stdio.h>  
    #include <stdlib.h>  
    #include <string.h>  
      
    int dp[100], k;  
      
    int f(int n){  
        if(n == 1) return k-1;  
        if(n == 2) return k*(k-1);  
        else if(dp[n]) return dp[n];  
        else return (dp[n] = (k-1)*(f(n-1)+f(n-2)));  
    }  
      
    int main(){  
        int n;  
      
        while(scanf("%d %d", &n, &k) == 2){  
            memset(dp, 0, sizeof(dp));  
            dp[n] = f(n);  
            printf("%d\n", dp[n]);  
        }  
      
        return 0;  
    }  
  • 相关阅读:
    格式布局
    hive UDAF源代码分析
    HIVE自定义函数 UDF
    HIVE函数UDAF 最大值
    牛顿法求平方根 scala
    mongoDB
    java类的加载机制
    类的加载过程
    Redis学习手册(目录)
    我与小娜(05):变换时空,重返北京
  • 原文地址:https://www.cnblogs.com/tanhehe/p/2996571.html
Copyright © 2011-2022 走看看