首页 > 其他分享 >hdu1297大数递归

hdu1297大数递归

时间:2024-05-12 23:08:15浏览次数:15  
标签:aa BigInteger 递归 大数 合法 放置 sc new hdu1297

【题解】

  假设有一种合法的放置方案,有n-1个位置,那么我们在末尾多放一个M,必定是一个合法的方案。(放F则不一定)

  有n-2个位置的合法放置方案,我们在末尾多放FF,必定是一个合法的方案。(其实放MM也是必定合法的,但是会和上一种情况重复,不能考虑进去。FM和MF则不能保证合法)

import java.math.BigInteger;
import java.util.Scanner;

public class hdu1297 {

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        BigInteger aa[] = new BigInteger[1001];
        aa[1] = BigInteger.ONE;
        aa[2] = new BigInteger("2");
        aa[3] = new BigInteger("4");
        aa[4] = new BigInteger("7");
        for (int i = 5; i < aa.length; i++) {
            aa[i] = aa[i-1].add(aa[i-2]).add(aa[i-4]);            
        }
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) {
            int x = sc.nextInt();
            System.out.println(aa[x]);    
        }
        sc.close();
    }
}

 

  有n-2个位置的不合法放置方案,如果能够通过放置两个位置变成合法的,那么它一定以MF结尾,我们可以放置FF或者FM。也就是在n-4个位置的合法方案后面放置MFFM或者MFFF,但是MFFM会与第一种情况重复,所以我们只计算MFFF的。

  那么我们就可以得出递推式:f[i]=f[i-1]+f[i-2]+f[i-4],(i>4).

 

标签:aa,BigInteger,递归,大数,合法,放置,sc,new,hdu1297
From: https://www.cnblogs.com/xiaohuangTX/p/18188390

相关文章

  • hdu2049递归问题
    解法:从N中选出M个C[n][m],然后乘上错排公式;f[n]=(n-1)*(f[n-1]+f[n-2]);f[0]=0;f[1]=1;importjava.util.Scanner;publicclasshdu2049{publicstaticintC(inta,intb){if(a==b){return1;}elseif(b==1){returna......
  • hdu2048递归问题
    题目思路:其实我还真没怎么看出来这个是递推(嘤嘤自己好菜哇)……不过很清楚的是我们需要求出每个人拿到的都不是自己的牌子的情况有几种,按照日常经验,如果前n个人已经做到了错排(也就是拿的都不是自己的牌子),当第n+1个人来的时候,他跟任意一个人交换后就能做到这n+1个人都实现错排,!!但是......
  • hdu2045 递归水题
    这道题的解法就是站在涂色后的最后一块,思考前一块是怎么涂色的就可以了,比如如果最后一块的前一块是与第一块颜色不同的情况,则最后一块只有一种颜色可以涂,其方法的数目等于f(n-1),而当最后一块前面一块的颜色与第一块相同时,则倒数第三块一定与第一块的颜色不同,则涂到倒数第三块有f(n-......
  • 数据结构学习笔记-递归求解森林高度
    森林的高度递归求解问题描述:设计算法求解森林的高度【算法设计思想】两个函数,一个用于计算单个二叉树的高度,另一个用于计算二叉树森林(即一组二叉树)的最大高度。下面是对两个函数的详细解释:1.treeHeight函数这个函数用于计算单个二叉树的高度。二叉树的高度定义为从根节点到......
  • tp6 递归函数使用
    publicfunctionfindLastClass($id){$classInfo=Db::name('class')->where('id',$id)->find();if($classInfo&&$classInfo['islast']==1){//如果当前记录的islast为1,直接返回return$classInfo......
  • 递归+回溯解决有效括号问题
    题目描述:数字n代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且有效的括号组合例如:当n=1时,有效的括号组合['()']当n=2时,有效的括号组合['(())','()()']当n=3时,有效的括号组合有['((()))','(()())','(())()'.'()(())','()()()&......
  • 大数据-客户价值分析
    (1)导入所需要使用的包importnumpyasnpimportpandasaspdimportmatplotlib.pyplotaspltimportrefromsklearn.clusterimportKMeansfromdatetimeimportdatetime(2)读取文件datafile="/data/bigfiles/data2.csv"data=pd.read_csv(datafile)(......
  • hdu2024递归水题
    importjava.util.Scanner;publicclasshdu2044{publicstaticvoidmain(String[]args){//TODO自动生成的方法存根//坑点long[]aa=newlong[51];aa[1]=1;aa[2]=2;for(inti=3;i<aa.length;......
  • .gitignore 全局忽略提交特定文件夹,不限路径递归忽略
    创建或修改全局.gitignore文件:在命令行中执行以下命令来创建或修改全局的.gitignore文件gitconfig--globalcore.excludesfile~/.gitignore_global如果文件已存在,则此命令会确保Git使用正确的文件。接下来,编辑这个文件(如果它不存在,这一步骤也会创建它):touch~/.gitig......
  • 基于改进MFCC特征和卷积递归神经网络的心音分类
    具体的软硬件实现点击http://mcu-ai.com/MCU-AI技术网页_MCU-AI人工智能心音分类在心血管疾病的早期发现中起着至关重要的作用,特别是对于小型初级卫生保健诊所。尽管近年来心音分类取得了很大进展,但其中大多数都是基于传统的分段特征和基于浅层结构的分类器。这些传统的声学表示......